-2

Possible Duplicate:
Does free(ptr) where ptr is NULL corrupt memory?
Is it good practice to free a NULL pointer in C?

I have a question concerning freeing a null pointer.

char *p = NULL;
free(p);

Could the free(NULL) cause a crash?

Or does it depend on the compiler?

4

1 に答える 1

3

freeのmanページより

void  free(void *ptr);

free() 関数は、ptr が指すメモリ割り当てを解放します。ptr が NULL ポインターの場合、何も実行されません。

Cマニュアル自体から確認を取りたい場合

free 関数は、ptr が指すスペースの割り当てを解除します。つまり、さらに割り当てられるようにします。ptr がヌル ポインターの場合、アクションは発生しません。

このドキュメントの 313 ページを参照してください。

于 2012-11-20T11:01:11.290 に答える