הקצאת זיכרון דינמית במערך דו מימדי C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

הקצאת זיכרון דינמית במערך דו מימדי C


lina12
 Share

Recommended Posts

  • lina12 changed the title to הקצאת זיכרון דינמית במערך דו מימדי C

את צריכה להקצות בלולאה מערך בגודל n של פוינטרים לchar ואז לרוץ על המערך איבר איבר בלולאה ולהקצות בכל מקום n איברים בגודל char.

 

אם את רוצה ממש את הקוד תכתבי אבל אולי תנסי לכתוב לבד, זה לא קשה במיוחד. 

 

קחי בחשבון שהקצאה דינמית יכולה להיכשל ואם היא נכשלה תצטרכי לשחרר את כל מה שהוקצה עד לאותו הרגע.

נערך על-ידי Buck
קישור לתוכן
שתף באתרים אחרים

ציטוט של Buck

את צריכה להקצות בלולאה מערך בגודל n של פוינטרים לchar ואז לרוץ על המערך איבר איבר בלולאה ולהקצות בכל מקום n איברים בגודל char.

 

אם את רוצה ממש את הקוד תכתבי אבל אולי תנסי לכתוב לבד, זה לא קשה במיוחד. 

 

קחי בחשבון שהקצאה דינמית יכולה להיכשל ואם היא נכשלה תצטרכי לשחרר את כל מה שהוקצה עד לאותו הרגע.

תודה רבה קודם כל!

בהקצאה דינמית אני בודקת אם ההקצאה הצליחה ואם לא אני מחזירה הודעת שגיאה ויוצאת מהתכנית. לפני היציאה מהתכנית אני צריכה לשחרר בכל זאת את הזיכרון שהוקצה למרות שההקצאה נכשלה?

קישור לתוכן
שתף באתרים אחרים

אין על מה.


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

 

אם החלטת שכן אז שימי לב שאפשר להשתמש באותו האינדקס שהשתמשת בו להקצות על מנת לשחרר, שימי לב שאם נניח הקצת עד איבר 15 ואז ההקצאה נכשלה אז את יכולה להריץ את המשתנה i ששווה ל15 מ14 אחורה ל0 ולשחרר את כל האיברים שi רץ עליהם. אפשר לעשות זאת בפונקציה נפרדת (cleanup()) שמקבלת את i-1 כפרמטר כמו גם את המערך הדו מימדי.

נערך על-ידי Buck
קישור לתוכן
שתף באתרים אחרים

הצטרפ/י לדיון

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

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
  • צור חדש...