ABA


"עזרה בC - שחרור זיכרון ומבנים"
גירסת הדפסה        
קבוצות דיון לימודים, מדע ותרבות נושא #11374 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11374
איציק2
חבר מתאריך 26.4.08
2436 הודעות
   13:42   29.01.12   
אל הפורום  
  עזרה בC - שחרור זיכרון ומבנים  
 
   ערכתי לאחרונה בתאריך 29.01.12 בשעה 13:57 בברכה, איציק2
 
היי,
נתקלתי בבעיה טיפה לגבי מבנים ושחרור זיכרון..
נתון לי המבנה הזה:

typedef struct BOOK
{
char* _author;
char** _genders;
int _totalGenders;
char* _name;
int* _chapterPages;
int _totalChapters;

}Book;

אני מקבל מהמשתמש בעצם גודל מערך ולפיו מקצה זיכרון למערך BOOK.
היה ביצוע של הכנסה ואת כל התכנית, בסוף אני רוצה לשחרר את כל הזיכרון..
כתבתי את הפונק' הבאה שאמורה לשחרר הכל אבל כשמדובר על יותר מספר בודד, היא לא מבצעת את עבודתה נאמנה:


void freeAll(Book* books, int size)
{
int i, j;

for (i = 0; i < size; i++)
{
free(books._name);
for (j = 0; j < books._totalGenders;j++)
free(books._genders);
free(books._genders);
free(books._chapterPages);
free(books._author);
free(books);
}
}// end of freeAll

לא יודע למה זה כותב מימין לשמאל.. סורי..

בכל אופן כשמדובר על מעבר לספר בודד אני לא מצליח לשחרר.
נראה לי שזה משהו שקשור ב free(books._chapterPages,
חשבתי בגלל שזה מערך של int ולא char אולי זה הבעיה כי אין לו NULL בסוף, בכל אופן אשמח לעזרה הכוונה או כל דבר כזה או אחר, תודה רבה

עריכה : הצלחתי, לא שמתי לב אבל שחררתי יותר מפעם אחת את המערך הראשי books, יצאתי צעיר D:

תודה D:


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net