עבור לתוכן

הערך null בתוך string ב c

Featured Replies

פורסם

שלום , כאשר אני מקצה זיכרון עם מאלוק לבאפר כלשהוא שמקבל אותיות char * buffer = (char*) malloc, ובאחת מהאותיות אני מכניס 0 כלומר null הבאפר מסרב לקבל עוד ערכים ופשוט נקטע (אני מסתכל בדיבגר) , לעומת זאת אם אני מקצה מערך בצורה רגילה char buffer[10] אין אם זה שום בעיה , למה זה קורה ?

פורסם

זה לא שהבאפר "מסרב לקבל עוד ערכים", זה שהדיבאגר לא יודע מה הגודל שלו, אז הוא קובע אותו לפי המיקום של ה-0. בניגוד לזה, כשאתה מקצה אותו באופן סטטי ע"י [char buffer[10 אז הדיבאגר יודע מה הגודל, אז הוא לא צריך לחשב את הגודל.

אם אתה רוצה, תעשה quick watch ואז תשנה את השורה של ה-watch ל:

buffer,10

ואז הוא יציג לך את זה כמערך בגודל 10.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים