🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
使用后该指针变量ptr一定要重新指向NULL,防止野指针出现,有效 规避误操作。比如如下: 当然这是C版的;不全但是最后结果看截图。可以知道ptr指向还是原来的内存单元,只不过是该内存单元被标示可擦除了。 ~~~ typedef struct data{ int year; char *name; }Data; Data *pd=malloc(sizeof(Data)); pd->name="pengrong"; pd->year=32; printf("%s\t%d\n",pd->name,pd->year); free(pd); printf("%s\t%d\n",pd->name,pd->year); ~~~ 输出 ![这里写图片描述](https://box.kancloud.cn/2016-02-24_56cd211dcc378.jpg "") 没free的话 你的printf会按规定的数据类型去打印 而你free以后 没有了数据类型限定的内存单元空间 printf方法就没办法正常打印了 所以调用完后必须把ptr手动赋值为null;防止野指针存在。