פורסם 2011 בינואר 314 שנים אם אתה צריך לממש בעצמך, אז מה הטעם להשתמש בקוד מוכן?בכל מקרה, realloc זו פונקציה שבסך הכל עושה שלושה דברים:1. מקצה זכרון בגודל החדש.2. מעתיקה את התוכן של הזכרון הקודם לזכרון החדש.3. משחררת את הזכרון הישן.וכמובן בסוף היא מחזירה מצביע לזכרון החדש שהוקצה.די קל לממש אותה.
פורסם 2011 בינואר 314 שנים הבעיה במימוש realloc בעצמך בעזרת malloc ו-free זה שאתה לא יודע את גודל הזכרון הישן.בחלק מהפלטפורמות יש פונקציה לא סטנדרטית שמחזירה לך את המידע הזה.
פורסם 2011 בינואר 814 שנים אתה יכול לראות את קוד המקור של המימוש המקורי בספרייה המתאימה.אגב לא מתחייב שהזיכרון שנוסף ימשיך בדיוק מאותו מקום, זה יכול פשוט לבצע את ההקצאה במקום חדש.
פורסם 2011 בינואר 814 שנים מחבר איך אני משיג את הקוד הזה שאתה מדבר עליו ?תוכל לעשות בשבילי copy paste ?תודה
פורסם 2011 בינואר 1114 שנים הקוד של המימוש המקורי זה כנראה לא מה שאתה מצופה לכתוב בעצמך.תנסה לכתוב כאן (לפי מה שכתב שניצל) את המימוש שלך ואם יש בעיות מישהו (אולי אפילו אני אם יהיה לי זמן) יתקן אותך.הפורטוטייפ הוא:void *realloc(void *pointer, size_t size);
פורסם 2011 בינואר 1414 שנים מחבר הייתה לי בעיה עם FREE שעשיתי על הישן כי הרי לחדש יש את אותה הכתובת כמו של החדש ואז זה היה מדחרר לי את שניהם אבל התגברתי עם MALLOC חדש למצביע עזר. תודה רבה אנשים!
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.