עבור לתוכן

המרה של שורת קוד ב C ל ++C

Featured Replies

פורסם

בניתי פעם קובץ בC, ועכשיו אני מנסה להישתמש באותו הקובץ ב ++C

וההודעות שגיאה שאני מקבל זה בקשר להקצאות הדינמיות שלי

השאלה שלי היא, איך אני יכול להפוך את השורה הזו:

temp=malloc(sizeof (node));

לתואמת ++C??

הקטע קוד המלא הוא:

void Insert_After (node *list, TYP val)
{
node * temp;
if (list!=NULL)
{
temp=malloc(sizeof (node));
temp->info=val;
temp->next=list->next;
list->next=temp;
}
else
printf("\naction denied\n");
}

פורסם

temp = new node[node];

פורסם

וכמובן אל תשכח את התאום שלו

delete[] temp

כדי לשחרר זיכרון

פורסם
  • מחבר

אני עשיתי רק temp = new node

וזה עובד לי, אני חייב להוסיף גם את ה[node]??

ואת הdelete[] temp צריך לשים בסוף הפונקציה או התוכנית?

והאם זה המקביל לfree? אם free תקף ב ++C?

פורסם

כן, זה כמו free.

פורסם
  • מחבר

אני עשיתי רק temp = new node

וזה עובד לי, אני חייב להוסיף גם את ה[node]??

ואת הdelete[] temp צריך לשים בסוף הפונקציה או התוכנית?

והאם זה המקביל לfree? אם free תקף ב ++C?

יש שם עוד כמה שאלות...

פורסם

טעות שלי

אתה אמור לעשות temp = new node

חשבתי שאתה רוצה להגדיר מערך

במידה ואתה רוצה מערך מסוג node בגודל m אתה צריך לעשות temp = new node[m]

בגלל שהגדרת רק איבר אחד אתה צריך לעשות delete temp בלי הסוגריים

את ה-delete אתה צריך לעשות איפה שאתה כבר לא צריך את הזיכרון הזה, בדיוק באותו מקום שהיית עושה free (זה מקביל)

פורסם

זה תלוי מה אתה צריך... אתה עקרונית לא חייב בכלל [], (גם הdelete יהיה בלי[])

שאתה עושה [] אתה למעשה אומר מספר נתונים (מערך) מסוג node.

אתה הdelete אתה עושה כמו free ובאותו מקום

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים