初期化されていないスタックへのアクセス
アクセス エラー への移動
スタックのの未初期化領域にアクセスすると、このエラーが発生します。以下のサンプル コードでは、スタック上のローカル変数へのポインタが関数の内部で変更されています。関数から処理が戻ったとき、スタックのその(ポインタが指している)部分はもう有効ではなく、そこにアクセスするとエラーが発生します。
#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;
}