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

שאלה על הקצאה דינמית ב-C


פיני1805

Recommended Posts

שלום אנשים

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

מישהו? איך נפתרים מהזבל

ptr[i]=(char*)malloc((size)*sizeof(char));
if (!ptr[i])
cout<<"error";
for(int j=0;j<size;j++)

[br]פורסם בתאריך: 18.07.2008 בשעה 20:11:07


שכחתי שורה אחרונה
ptr[i][j]=input[j];

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

למה שלא תשתמש בNEW וDELETE במקום בMALLOC וFREE

א. מה זה משנה?

ב. delete ו-new הם אופרטורים של ++C. אם הוא כותב ב-C, הוא צריך להשתמש ב-malloc ו-free.

פותח הת'רד - יעזור מאוד אם תעלה גם את הקוד שבו אתה קורא את המחרוזות, והקוד שבו אתה מדפיס אותן.

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

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

ההקצאה של C פשוט משאירה בזכרון המוקצה את מה שהיה בו קודם, כלומר, זבל.

כל עוד אתה לא מאפס את התו האחרון כלומר

ptr[i][size - 1] = 0

אין לך כל אפשרות לדעת מה יש באותו מיקום, והפונקציה cout תדפיס את המידע בזכרון עד שתגיע לתא שערכו (במקרה כנראה) 0.

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

ארכיון

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

×
  • צור חדש...