033
10.08.2003, 12:22 Uhr
~Anfänger
Gast
|
Also mit delete[] my_2d_array; gibt man nicht den speicher frei sondern man löscht nur die pointer die auf den speicher zeigen und kann den speicher nicht freigeben da nur die pointer die jetzt gelöscht sind wüssten wo die Daten auf dem Speicher liegen.Also kommt man nicht mehr ran. ok aber:
C++: |
for(int i=0;i<y;i++) { my_2d_array[i] = new int [x]; for(int j=0;j<x;j++) { my_2d_array[i][j]= rand(); cout<<my_2d_array[i][j]<<"\t"; delete[] my_2d_array[i]; /* wenn ich jetzt hier lösche dürfte doch beim nächsten Schleifendurchlauf(der x schleife) das array[1][2] garnichtmehr existieren, nach meiner Auffassung müsten jetzt alle array[1][1],a[1][2], a[1][3]...a[1][x] gelöscht sein,was aber nicht aufeinmal,(wie von mir erwartet)sondern bei jeder delete Anweisung passiert, also müsste das Programm die elemente nacheinander von alleine löschen. da zu müsste die delete Anweisung wissen wie groß x ist /* } }
|
Also ich hoffe ich hab euch jetzt nicht zu sehr verwirrtt Aber ich hoffe ihr wisst jetzt was ich nicht verstehe. |