רשימות מקושרות - בעיה עם פונקציה
הבעיה היא: יש פונקציה ראשונה Species* insert_species שעובדת עם הראש Species *head ,ופונקציה שניה (שהיא מורצת מתוך insert_species) עובדת עם הראש Genus *head_g . הפונק' הראשונה קוראת לשניה עם head_g , ובסופה של הפונקציה השניה ישנה שורה return head_g ,בסופה של הראשונה מופיע return head. לפי מה שאני מבין מהדיבאגר ,כאשר התוכנית חוזרת ל main ,רק head חוזר עם ערך חדש .... זה נראה משהו כזה:
הבעיה היא: יש פונקציה ראשונה Species* insert_species שעובדת עם הראש Species *head ,ופונקציה שניה (שהיא מורצת מתוך insert_species) עובדת עם הראש Genus *head_g . הפונק' הראשונה קוראת לשניה עם head_g , ובסופה של הפונקציה השניה ישנה שורה return head_g ,בסופה של הראשונה מופיע return head. לפי מה שאני מבין מהדיבאגר ,כאשר התוכנית חוזרת ל main ,רק head חוזר עם ערך חדש .... זה נראה משהו כזה:
void main () { Species *head=NULL; Genus *head_genus=NULL; } Species* insert_species(Species *head,Genus *head_g,char common[], char latin[],char section[],int pop,double risk,genus_name[]) { if (!head) { mallocing and copying the "latin,section,pop,risk" into "head" head_g=Create_genus(head_g,genus_name,head); } return head; }
אני עובד עם פונקציה ראשית Species* insert_species ופונקציה משנית Genus* Create_genus . יש למישהו רעיון מה יכולה להיות הסיבה שלמרות שאני משנה את הערכים של ההקצאה , ה head_g עדיין חוזר ל main עם bad ptr can evaluate .?.תודה.