olfamzoughi
Messages postés2Date d'inscriptionvendredi 8 août 2008StatutMembreDernière intervention 7 août 2009
-
31 juil. 2009 à 12:43
olfamzoughi
Messages postés2Date d'inscriptionvendredi 8 août 2008StatutMembreDernière intervention 7 août 2009
-
7 août 2009 à 18:07
bonjour
Je suis débutante en c/c++.
j essaye de supprimer une matrice de taille 2*Nb_pt par le code suivant:
/////////////////////////////////////////////////////////////////////
using namespace std;
int main(int argc, char *argv[])
{
int Nb_pt=200;
double ** matrice;
matrice = new double * [Nb_pt];
for (int i=0; i<Nb_pt; i++) {
matrice [i] = new double [2];
}
for (int i=0; i<Nb_pt; i++){
matrice [i][0]=2;
matrice [i][1]=2;
}
for (int i=0; i<Nb_pt; i++)
{
printf("matrice[][]%d",matrice[i][0]);
printf("matrice[][]%d\n",matrice[i][1]);
}
for (int i=0; i<Nb_pt; i++)
{
delete[] matrice[i];
}
delete matrice;
for (int i=0; i<Nb_pt; i++)
{
printf("matrice[][]%f",matrice[i][0]);
printf("matrice[][]%f\n",matrice[i][1]);
}
return EXIT_SUCCESS;
}
////////////////////////////////////////////////////////////////////////
Lorsque j affiche les valeurs de ma matrice apres delete je trouve que ces valeurs sont encore sauvegardes.
je compile avec gcc sur linux
merci de bien vouloir m aider.
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 31 juil. 2009 à 12:57
Salut
for (int i=0; i<Nb_pt; i++)
delete[] matrice[i];
delete []matrice;
Attention, une fois que tu as supprimé ta matrice elle est peut être présente en mémoire mais tu n'as plus le droit d'écrire sur cette zone...
C'est juste parce que les autres programme n'ont pas eu le temps d'écrire dessus que tu obtiens les mêmes valeurs.
olfamzoughi
Messages postés2Date d'inscriptionvendredi 8 août 2008StatutMembreDernière intervention 7 août 2009 7 août 2009 à 18:07
Bonjour
Merci pour m'avoir répondu aussi vite la dernière fois.
En fait, le problème que j'ai réellement dans mon code est qu'il génère une exception de type std::bad_alloc:
en fait, mon traitement se fait sur une base d images mais au bout d'un cetain nombre d'image, il génère cette exception.
g essayé de faire un delete sur toutes les matrices et les pointeurs que je crée (comme g montré dans mon message précédent) mais ça marche pas.
J'aimerai savoir qu'elles sont les procédures que je puisse faire pour résoudre mon problème.
Merci d'avance.