解放されたメモリへのアクセス

提供: Appmethod Topics
移動先: 案内検索

アクセス エラー への移動


"解放されたメモリへのアクセス" エラーは、メモリが解放後にアクセスされた場合に発生します。通常、そのメモリは 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;

}