Accès dans une pile non initialisée
Remonter à Erreurs d'accès
L'accès à une zone non initialisée de la pile générera cette erreur. Dans l'exemple de code suivant, un pointeur vers une variable locale sur la pile est changé à l'intérieur d'une fonction. En sortie de la fonction, cette partie de la pile n'est plus valide, et une erreur se produit lors de son accès.
#include <tchar.h>
#pragma hdrstop
#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 locfunc(int **locp)
{
int local_var;
*locp = &local_var;
}
void myf()
{
int *locp;
locfunc(&locp);
*locp = 10; // error
}
int _tmain(int argc, _TCHAR* argv[])
{
myf();
return 0;
}