פורסם 2006 באפריל 2019 שנים struct Node{ int data; Node *next;};void func(Node *head){ head=new Node(); head->data=10; head->next=NULL;}int main(){ Node *head; head=new Node(); head->data=0; head->next=NULL; func(head); cout << head->data; return 0;}ברגע יציה מהפונ' הפוינטר חוזר להיות עם תוכן שהיה לפני קריאה לפונ'זאת אומרת זהו פוינטר לוקלי? זה כמו עם משתנים לוקליים שהם קיימים רק עבור הפונ' שנוצרו בה (ועבור הפונ' שבתוך)?מה יכול להיות הפתרון לבעיה (כמו עם משתנים, שאנו יכולים להעביר לפונ' את המשתנה עם סימן "&" וכך נוכל לשנות אותו)בקיצור, איך אוכל לשנות את המידע שפוינטר מצביעה עליו (ב-HEAP) מתוך פונ', כך שהשינויים שבוצעו ישארו גם כשנצאה מהפונ'?תודה
פורסם 2006 באפריל 2019 שנים פוינטר לפוינטר:void func(Node **head){(*head)=new Node();(*head)->data=10;(*head)->next=NULL;}ד.א. אל תשכח לעשות DELETE לפני הFUNC, בקריאה:func(&head);
פורסם 2006 באפריל 2119 שנים או בתוך הFUNC.אתה חייב לנקות את האיברים שאתה מקצה.delete [] (*node);(*head)=new Node();(*head)->data=10;(*head)->next=NULL;ובסוף הMAIN גם delete:delete [] head;
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.