Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1487 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Faire des delete correct après des new !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Faire des delete correct après des new !

n°321284
benj63
Posté le 02-03-2003 à 22:24:42  profilanswer
 

Bonjour,  
 
J'ai un petit problème concernant la libération de la mémoire allouée dynamiquement avec des new... :  
 

Code :
  1. int *tab1= new int[86*59];
  2. int ** tab2= new int *[86*59];
  3. for (i=0; i<86*59; i++)
  4.      tab2[i] = new int[86*59];
  5. ...
  6. delete[] tab1;
  7. for (i=0; i<86*59; i++)
  8.      delete[] tab2[i];
  9. delete[] tab2;


 
 
Et lorsque je ferme la fenêtre de mon programme, il me dit "Erreur d'exception à l'adresse .....". Je pense donc qu'il s'agit d'un problème avec mes delete et mes new, puisque sans eux il n'y avait aucun problème !! Si j'enleve les delete à la fin, ça plante aussi.  
 
Estimez-vous que mes delete sont corrects ? Avez-vous d'autres idées pour le plantage ?  
 
Je vous remercie par avance !

mood
Publicité
Posté le 02-03-2003 à 22:24:42  profilanswer
 

n°321299
verdoux
And I'm still waiting
Posté le 02-03-2003 à 22:45:28  profilanswer
 

l'erreur est ailleurs.

n°321302
kenshiro18​2
Posté le 02-03-2003 à 22:49:38  profilanswer
 

benj63 a écrit :

Bonjour,  
J'ai un petit problème concernant la libération de la mémoire allouée dynamiquement avec des new... :  

Code :
  1. int *tab1= new int[86*59];
  2. int ** tab2= new int *[86*59];
  3. for (i=0; i<86*59; i++)
  4.      tab2[i] = new int[86*59];
  5. delete[] tab1;
  6. for (i=0; i<86*59; i++)
  7.      delete[] tab2[i];
  8. delete[] tab2;




 
Si ce n'est pas un programme de test, il y a plusieurs problème de style:
- utilise des constantes
const size_t NB_ITEMS = 86*59;
- utilise des std::vector si possible
 

n°321309
Taz
bisounours-codeur
Posté le 02-03-2003 à 23:05:29  profilanswer
 

int ** tab2= new int *[86*59];  
  for (i=0; i<86*59; i++)  
       tab2[i] = new int[86*59];
 
bref tu demandes (86*59)*(86*59)*4 ~= 98Mo
 
tu ferais bien de t'assurer du succes de ton allocation en essayant de capturer une exception std::bad_alloc

n°321311
verdoux
And I'm still waiting
Posté le 02-03-2003 à 23:07:39  profilanswer
 

Ah oui, en zffzt, ça commence à faire bcp !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Faire des delete correct après des new !

 

Sujets relatifs
tit pb de désallocation avec delete[Mysql] pb DELETE
Comment avoir un prompt dos correct sous win 98 ?[ C ] Structure de if correct ?
"DELETE FROM `guest` WHERE `id` ='$id' LIMIT 1"; ca ne marche pa :cry:MySQL + REQUETE DELETE AVEC IMBRICATION !!!! HELP !!!!!!!
C++ : delete d'un char * : quelle est la bonne solution ?pb avec la fonction DELETE ds une BdD
pb mysql / PHP avec la fonction DELETEDelete et tableau de pointeurs
Plus de sujets relatifs à : [C++] Faire des delete correct après des new !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR