3-Dim Array speicher probleme
-
Hallo zusammen!
Ich habe folgendes Problem aus dem ich einfach nicht schlau werde.
Ich habe folgende Funktion geschrieben um ein 3-dimensionales array freizugeben:static void freeMemoryBxy(BOOL*** bxy, int dim1, int dim2){ for(int m=0; m<dim1; m++) for(int n=0; n<dim2; n++) delete[] bxy[m][n]; for(int m=0; m<dim1; m++) delete[] bxy[m]; delete[] bxy; bxy=NULL; }Das geht auch soweit ganz gut, aber beim 10. Durchlauf meines Programms, also beim 10. Aufruf dieser Funktion kommt folgende Fehlermeldung von Windows:
Debug Error!
HEAP CORRUPTION DETECTED: after Normal block(#57353) at 0x0035FFFE0.
CRT detected that the application wrote to memory after end of heap buffer.Dieser Fehler tritt genau an dieser Stelle auf:
delete[] bxy;Hat jemand eine Idee was das bedeuten könnte? Werd aus der Fehlermeldung nicht wirklich schlau
danke schonmal im voraus
-
Vermutlich passen die Angaben von dim1 und dim2 nicht zur tatsächlichen Größe des Arrays.
(btw, die letzte Anweisung ist übrigens unnötig - und wirkungslos)
-
Hi!
das bxy=NULL?
Hab den Fehler schon gefunden. Ich bin eine gute Weile zuvor über die Arraygrenzen gerutscht. Komischerweise kam der Fehler erst beim freigeben.
Trotzdem danke für die Hilfe
-
Sei froh dass es den debug heap gibt. Ein release build wäre vermutlich drübergelaufen und stattdessen einfach *irgendwo* abgekackt

-
Gast1122 schrieb:
Komischerweise kam der Fehler erst beim freigeben.
Ja, vorher hat auch niemand überprüft, ob der Heap noch intakt ist

-
schau dir mal std::vector an