2016-03-29 20 views
-2

malloc関数を使用してポインタ用にメモリを割り当てました。私は無料でメモリを解放しました。しかし、私がポインタの内容を印刷しようとするときはいつでも、それは内容を印刷します。cでのフリー関数の使用

次に、free()の使用方法を教えてください。

+4

'free()'はメモリを利用可能とマークするだけです(以降の割り当てに使用できます)。メモリの内容は削除されません。しかし、未定義のビヘイビアであるので、自由なメモリの内容にアクセスすべきではありません。 – Haris

+0

だと思います!ポインタが何をすると思いますか?いくつかのmallocを試してみて、 "content"を印刷してそこにあるものを見てください。あなたがそれを解放した後、ポインタの値をnullに設定するのがよい方法です。 – CarlH

答えて

1

free()は、メモリを利用可能とマークするだけです(以降の割り当てに使用できます)。メモリの内容は削除されません。

言い換えれば、は、のようにfreeのメモリにはアクセスしないでください。

+1

あなたが何かを解放したので、このポインタをnullに設定して、ぶら下がっているポインタがぶら下がってしまうのを防ぎます – Tmayto

+0

これは良い考えです。なぜfree()がポインタポインタをNULLに設定できるように-to-pointer引数を使用しますか? –

関連する問題