ABA


"שאלה שפעם ידעתי את התשובה לה ועכשיו אנלא זוכר.."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11075 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11075
יוחאי
חבר מתאריך 30.12.15
163 הודעות, דרג אמינות חבר זה
   21:41   15.12.12   
אל הפורום  
  שאלה שפעם ידעתי את התשובה לה ועכשיו אנלא זוכר..  
 
   למה free (ב C..) לא צריכה לדעת כמה זכרון לשחרר..
הכי שאתה מקצה (גם מערך) אתה שולח גודל של זיכרון בשביל שmalloc ידע כמה להקצות מהheap.. למה free לא צריך לקבל גודל? איך free יודע כמה לשחרר?
בעע שאלו אותי לפני שנה אנלא זוכר כבר איפה.. וידעתי את התשובה.. ועכשיו לא :\


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  פתרון CaTz 15.12.12 21:45 1
  לדעתי זה תלוי אימפלנטציה.. VeNom  16.12.12 00:36 2
  האתר שלך למטה כמה עוד 16.12.12 00:39 3

       
CaTz
חבר מתאריך 2.10.04
14537 הודעות, דרג אמינות חבר זה
   21:45   15.12.12   
אל הפורום  
  1. פתרון  
בתגובה להודעה מספר 0
 
   http://stackoverflow.com/questions/11894018/how-comes-free-doesnt-need-a-length-parameter


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק, 2 נקודות
   00:36   16.12.12   
אל הפורום  
  2. לדעתי זה תלוי אימפלנטציה..  
בתגובה להודעה מספר 0
 
   תחשוב שאתה כותב מאלוק שמקצה בלוקים של מידע בHEAP. לכל בלוק אתה יכול להצמיד HEADER של כמה bytes עם מידע על גודל הבלוק ואם הוא תפוס או לא.
תחשוב שיש לך משהו כזה:

struct blockheader
{
int length;
int used;
}

עכשיו מישהו מבקש הקצאה של מאלוק בגודל 100 bytes..
אני מקצה 100 + גודל blockheader, ומעדכן את פרטי הבלוק.
מחזיר ליוזר את הכתובת + גודל blockheader והוא מבחינתו מקבל 100 bytes.
בפועל הוקצה קצת יותר מקום לטובת הHEADER.

שאתה קורא ל FREE על כתובת מסויימת, אתה מחסיר מהכתובת את הגודל של blockheader ויודע כמה לשחרר(לא כל אימפלמטציה תחזיק גודל, יהיו כאלה שיהיו להם בלוקים בגודל קבוע ולשחרר זכרון זה לסמן את הבוליאני used כ false.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
כמה עוד לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.11.09
234 הודעות, 11 פידבק, 19 נקודות
   00:39   16.12.12   
אל הפורום  
  3. האתר שלך למטה  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

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



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