malloc関数を使用してポインタ用にメモリを割り当てました。私は無料でメモリを解放しました。しかし、私がポインタの内容を印刷しようとするときはいつでも、それは内容を印刷します。cでのフリー関数の使用
次に、free()の使用方法を教えてください。
malloc関数を使用してポインタ用にメモリを割り当てました。私は無料でメモリを解放しました。しかし、私がポインタの内容を印刷しようとするときはいつでも、それは内容を印刷します。cでのフリー関数の使用
次に、free()の使用方法を教えてください。
free()
は、メモリを利用可能とマークするだけです(以降の割り当てに使用できます)。メモリの内容は削除されません。
言い換えれば、は、のようにfree
のメモリにはアクセスしないでください。
あなたが何かを解放したので、このポインタをnullに設定して、ぶら下がっているポインタがぶら下がってしまうのを防ぎます – Tmayto
これは良い考えです。なぜfree()がポインタポインタをNULLに設定できるように-to-pointer引数を使用しますか? –
'free()'はメモリを利用可能とマークするだけです(以降の割り当てに使用できます)。メモリの内容は削除されません。しかし、未定義のビヘイビアであるので、自由なメモリの内容にアクセスすべきではありません。 – Haris
だと思います!ポインタが何をすると思いますか?いくつかのmallocを試してみて、 "content"を印刷してそこにあるものを見てください。あなたがそれを解放した後、ポインタの値をnullに設定するのがよい方法です。 – CarlH