Problème delete tableau dynamique

Signaler
Messages postés
2
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
15 avril 2004
-
Messages postés
2
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
15 avril 2004
-
Bonjour,
je suis débutant en c++.
Quelqu'un pourrait il me dire pourquoi le programme suivant plante à la dernière instruction (delete [] tableau;) svp ?

le message de Borland C++ est le suivant:

"Project project5.exe raise exception class EAccessViolation with message 'Access violation at address 01196C0D in module BORLNDMM.DLL'. Write of address 0000006F'. Process stopped "

J'ai aussi essayé avec malloc et free mais c'est la même chose.

Merci d'avance.

void __fastcall TForm1::Button1Click(TObject *Sender)
{

Longint **tableau;

tableau=new Longint* [300000];

for(i = 0; i < 300001; i++) {
tableau[i]= new Longint [128];
}

Variant Nombre;
char Libelle;
int k;
int temp;
Variant Nbr_Fois;
Nbr_Fois=Edit1->Text;
TDateTime DateTime = Time();
Nombre=(300000*128)*Nbr_Fois;

ProgressBar1-> Max=Nbr_Fois;

for (k=1;k<Nbr_Fois+1;k++) {

Button1->Caption="Remplissage 1" ;

for (i=0;i<300000;i++) {
for(j=0;j<128;j++) {
tableau[i][j]=111;
}
}
ProgressBar1->Position = k;
}

TDateTime DateTime1 = Time();
TDateTime DateTime3 = DateTime1-DateTime ;
AnsiString str = TimeToStr(DateTime3);
Caption = str;
Label1->Caption = "Nombre de Case calculées : ";
Label1->Caption = Label1->Caption + Nombre ;

Label2->Caption = "Valeur Ligne 300000, Colonne 128 : ";
Label2->Caption = Label2->Caption + tableau [299999][127];

for(i = 0; i < 300001; i++) {
delete [] tableau[i];
}

delete [] tableau;

}

2 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
tableau=new Longint* [300000];

donc

for(i = 0; i < 300000; i++) ...

et pas for(i = 0; i < 300001; i++) et remplace le 30000 par une variable
Messages postés
2
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
15 avril 2004

Merci djl !!
C'était vraiment tout bête.
Salut.