過去ログ
No735 freeしたメモリ領域の参照
[戻る]
[ホームページ]
No.9029
freeしたメモリ領域の参照
投稿者---terapad(2003/08/24 00:50:50)
言葉についての質問なのですが、
freeし忘れてメモリが足りなくなることを「メモリリーク」と言いますが、
freeしたメモリ領域の参照のことを言う単語はあるのでしょうか?
また、freeしたメモリ領域を参照するとどのような動作をするのでしょうか?
No.9031
Re:freeしたメモリ領域の参照
投稿者---
YuO
(2003/08/24 02:36:43)
>freeし忘れてメモリが足りなくなることを「メモリリーク」と言いますが、
>freeしたメモリ領域の参照のことを言う単語はあるのでしょうか?
特にないと思いますが,解放されたオブジェクトを指すポインタのことを,
dangling pointerと呼びます。
>また、freeしたメモリ領域を参照するとどのような動作をするのでしょうか?
未定義です。
何事もないようにプログラムは進行するかもしれませんし,
アクセス違反でプログラムが強制終了させられるかもしれません。
No.9034
Re:freeしたメモリ領域の参照
投稿者---terapad(2003/08/24 11:50:14)
ご解答ありがとうございます。
未定義というのはどうなるかわからないということなんですね。
もう1つ質問なのですが、
一度freeした領域を再度freeしたらどうなるのでしょうか?
これも未定義でしょうか。
No.9035
Re:freeしたメモリ領域の参照
投稿者---たか(2003/08/24 13:59:47)
>もう1つ質問なのですが、
>一度freeした領域を再度freeしたらどうなるのでしょうか?
>これも未定義でしょうか。
もちろん未定義です。ちなみにC++の場合はポインタ変数に0が入って
いれば、deleteを適用しても無視されます。C++ではdeleteしたらポイ
ンタ変数に0を代入しておく習慣はそこから来ています。
No.9036
Re:freeしたメモリ領域の参照
投稿者---terapad(2003/08/25 00:49:12)
ありがとうございました。
勉強になりました。