解放されたメモリへのアクセス
アクセス エラー への移動
"解放されたメモリへのアクセス" エラーは、メモリが解放後にアクセスされた場合に発生します。通常、そのメモリは new
または malloc
で割り当てられ、delete
または free
で割り当て解除されています。例を以下のコードで示します。
#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;
}