פורסם 2010 במרץ 2915 שנים שלום , כאשר אני מקצה זיכרון עם מאלוק לבאפר כלשהוא שמקבל אותיות char * buffer = (char*) malloc, ובאחת מהאותיות אני מכניס 0 כלומר null הבאפר מסרב לקבל עוד ערכים ופשוט נקטע (אני מסתכל בדיבגר) , לעומת זאת אם אני מקצה מערך בצורה רגילה char buffer[10] אין אם זה שום בעיה , למה זה קורה ?
פורסם 2010 במרץ 2915 שנים זה לא שהבאפר "מסרב לקבל עוד ערכים", זה שהדיבאגר לא יודע מה הגודל שלו, אז הוא קובע אותו לפי המיקום של ה-0. בניגוד לזה, כשאתה מקצה אותו באופן סטטי ע"י [char buffer[10 אז הדיבאגר יודע מה הגודל, אז הוא לא צריך לחשב את הגודל.אם אתה רוצה, תעשה quick watch ואז תשנה את השורה של ה-watch ל:buffer,10ואז הוא יציג לך את זה כמערך בגודל 10.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.