このページに関してのお問い合わせはこちら
C言語なら、オレに聞け! <4>
ツイート
293
:
デフォルトの名無しさん
:
2001/06/24(日) 02:59
>>291
malloc(), realloc() を介して確保したメモリ以外は free() してはいけない。
そういう前提で free() は書いてあるので、文字列定数へのポインタを渡す
と、困った事態になる。
たいていはメモリアクセス保護違反で異常終了するが、環境によっては
その時にはエラーが出ずにメモリ上のデータを壊す(そして後で変数の
値がおかしくなっていることに気づく)かもしれないし、OS が暴走するか
もしれない。