zzzz76 发表于 2016-10-24 22:56:30

冷冷的小知识——free后指针变量的值会变吗

本帖最后由 zzzz76 于 2016-10-24 22:56 编辑

如题,咱做个小测试{:10_275:}
#include <stdio.h>
#include <stdlib.h>

int main(){
      char *p = (char *)malloc(sizeof(char));
      printf("分配空间后p的地址为%p\n", p);
      free(p);
      printf("释放空间后p的地址为%p\n", p);
      p = NULL;
      printf("设置NULL后p的地址为%p\n", p);
      return 0;
}

当然啦,随机分配导致每次测试的答案不同



得出结论,free后指针变量的值不变

那么问题就来了,这个时候万一别的地方用到了该指针指向的空间,这个时候很容易摩擦出一些不可描述的事情

所以咱们编程保持好习惯,free后NULL她一下{:10_307:}

在校大学生交流会

心驰神往 发表于 2020-11-4 13:15:05

啥意思

hornwong 发表于 2021-6-29 20:19:09

感谢分享!

1835575828 发表于 2021-7-4 15:08:26

页: [1]
查看完整版本: 冷冷的小知识——free后指针变量的值会变吗