Accès dans une mémoire libérée

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Erreurs d'accès


Une erreur "Accès dans une mémoire libérée" survient quand une mémoire est accédée après sa libération. Typiquement, la mémoire a été allouée avec new ou malloc et désallouée avec delete ou free. Le code suivant en est un exemple :

 #include<tchar.h>
 #include<stdio.h>
 #include<dir.h>
 class someclass{
     int fnumber;
   public:
     int getnumber(){return fnumber;}
     void setnumber(int nw){fnumber = nw;}
     int doublev(int val){return val*2;}
     int publicalval;
 
 };
 
 void myf()
 {
   someclass *myc = new someclass();
   delete myc;
   myc->publicalval = 10; // error
 }
 
 int _tmain(int argc, _TCHAR* argv[])
 
 {
   myf(); 
   return 0;
 
 }