【C言語】
free(ポインタ)だけではポインタはNULLにならない


■free(pointer)でpointerはNULLか?

#include <stdio.h>
#include <stdlib.h>
int main(void){
    char *ptr = malloc(256);
    if(ptr == NULL)
        return  1;  
    
    free(ptr);//解放
    if(ptr == NULL)
        puts("freeしたらNULLになる");
    else
        puts("freeしてもNULLにはならない");  
}

freeしたら
free関数がポインタをNULLにしてくれると
思っている人!
残念ですが間違っています。

参考:

CFAQ-4.8: 呼んだ側のポインターの値は変わらなかった。