ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
325
325
EMPFEHLEN
-
27.09.06 12:31 #1
- Registriert seit
- Sep 2006
- Beiträge
- 3
Hallo,
gleich mal vorweg: Da ich gerade von c auf c++ umsteige, bin ich recht unerfahren mit vielen Dingen der OOP.
Ich arbeite mit dem Borland Builder 6.0 unter Windows XP
Nun zu meinem Problem:
Ich reserviere mir mittels "new" dynamischen Speicher für 2D-Arrays, den ich am Ende der Methode mit delete [] wieder frei gebe.
Rufe ich diese Methode (wie hier durch erneutes clicken des Buttons) ein weiteres Mal auf, steigt das Programm mit einem Speicherfehler aus.
Hier mal die (wie ich denke) entscheidenden Quelltexte:
void __fastcall TMainMenue::BContinueClick(TObject *Sender)
{
EnableDLT();
.
.
.
}
void TMainMenue::EnableDLT(void)
{
//dyn speicherreservierung
double **Array1 = new double *[4]; //Ausstiegspunkt beim 2. Durchlauf
double **Array2 = new double *[3];
for (int i=0; i<4 ; i++) Array1[i] = new double [StrToInt(LabScanNr->Caption)];
for (int i=0; i<3 ; i++)
{
Array2[i]= new double [StrToInt(LabScanNr->Caption)];
}
.
.
.
delete [] Array1;
delete [] Array2;
}
gleiches Problem tritt auf, wenn ich eine Methode iterativ aufrufe, in der Speicher so gehandhabt wird.
Vielen Dank für eure Hilfe
El_Cattivo
-
27.09.06 12:48 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Du hast vergessen die Unter-Arrays auch wieder zu löschen. Bevor du Array1 und Array2 mit delete[] freigibst mußt du erst noch Array1[0..3] und Array2[0..2] mit delete[] löschen.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
27.09.06 13:03 #3
- Registriert seit
- Sep 2006
- Beiträge
- 3
Wie kann ich denn die Unterarrays leeren?
delete [1][] Array1
Habe in meinem "schlauen" Buch nix dazu gefunden!
-
27.09.06 13:06 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Na genauso wie du sie auch gefüllt hast. Mit einer Schleife:
GrußCode cpp:1 2 3
for (int i = 0; i < 4; ++i) { delete[] Array1[i]; }
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
27.09.06 13:09 #5
- Registriert seit
- Sep 2006
- Beiträge
- 3
juchhuu
Habs hinbekommen,
@deepthroat: Vielen Dank
Bis zur nächsten Fragerei!
Gruß,
El_Cattivo
Ähnliche Themen
-
[Apache 2.0.58] Speicherfehler beim stoppen
Von Prophet05 im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 19.05.06, 23:30 -
Speicherfehler
Von illaX im Forum C/C++Antworten: 5Letzter Beitrag: 04.04.06, 14:30 -
Speicherfehler abfangen
Von MFC openGL im Forum C/C++Antworten: 8Letzter Beitrag: 28.04.05, 12:27 -
Wie entstehen speicherfehler?
Von sra im Forum Coders TalkAntworten: 3Letzter Beitrag: 29.07.04, 10:13 -
MAX5 Speicherfehler
Von Pringles im Forum 3D Studio MaxAntworten: 8Letzter Beitrag: 07.04.04, 11:53





Zitieren
Login






