C++/זיכרון דינמי: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Space3000 (שיחה | תרומות)
שורה 66:
delete[] myarray;
 
</pre></div>
 
 
== שינוי גודל הזיכרון ==
בשפת C פעולה זו התבצעה על ידי פונקציית realloc. ב-C++ אין אופרטור מיוחד לצורך זה. מה שנתן לעשות זה ליצור מקום חדש בזיכרון על ידי new, להעתיק את התוכן הישן למקום החדש ולאחר מכן לשחרר את הזיכרון הישן שהוקצה בעזרת delete.
*דוגמא:
<div style="text-align:left; direction:ltr;"><pre>
char *old_memory=new char[old_size];
// מבצעים פעולות על old_memory
char *new_memory=new char[new_size];
// העתקת זיכרון
int i;
for (i=0; i<(old_size<new_size)?old_size:new_size; i++) {
new_memory[i]=old_memory[i];
}
delete [] old_memory;
</pre></div>