Kleine kurze pointer frage bezüglich delete
-
Hallo allerseits,
wenn ich über new ein array alloziiere und dann den Pointer umlenken will auf ein anderes bereits alloziiertes array, wie kann ich denn dann das alte löschen?
Also sowas:
int* a = new int[...]; int* b = new int[...]; a = b;Muss ihc dazu einen tmp-pointer anlegen der zuerst auf das von a zeigt, dann a umlenken und dann tmp löschen? Etwa so?:
int* a = new int[...]; int* b = new int[...]; int* tmp = a; a = b; delete [] tmp;Oder gäbe das auch ein speicherloch ?
-
Der 1. Code wird unweigerlich ein Speicherloch erzeugen, der 2. nicht (natürlich nur wenn du noch ein delete[] oder delete[] b machst).
-
Wozu die temp Variable? Geht auch so:
int* a = new int[...]; int* b = new int[...]; delete [] a; a = b;