ページ 11

これって何を意味するんですか?

Posted: 2009年11月12日(木) 10:36
by ひよこ
これって何を意味するのでしょうか?教えてください。
HEAP[RyuJin.exe]: HEAP: Free Heap block 605a090 modified at 605a0bc after it was freed

Re:これって何を意味するんですか?

Posted: 2009年11月12日(木) 11:06
by Naohiro19
>フリーヒープブロック605a090の変更は、605a0bcの後に解放されます。
という意味の英語です。

Re:これって何を意味するんですか?

Posted: 2009年11月12日(木) 11:09
by ひよこ
これがでるってことはなんかプログラムに影響を与えるのでしょうか?

Re:これって何を意味するんですか?

Posted: 2009年11月12日(木) 11:36
by toyo
以下のコードで同じような結果が得られます

int *a = (int*)malloc(40);
free(a);
a[1] = 9;

freeした領域に書き込んでるのではないでしょうか

Re:これって何を意味するんですか?

Posted: 2009年11月12日(木) 12:56
by ひよこ
やってはいけないことをしているってことですよね。

Re:これって何を意味するんですか?

Posted: 2009年11月12日(木) 13:09
by toyo
私はfreeやdeleteの後はポインタを初期化するようにしています
delete hoge;
hoge = NULL;
とか
free(fuga);
fuga = NULL;
こうすれば解放後の代入時にアクセス違反でブレークするのでバグが見つけやすくなります。

Re:これって何を意味するんですか?

Posted: 2009年11月12日(木) 13:43
by ひよこ
これって上の表示が出たところが怪しいですか?