free指针后再给指针赋值,为什么不报错?
答案:2 悬赏:80 手机版
解决时间 2021-04-29 09:14
- 提问者网友:杀手的诗
- 2021-04-28 16:31
free指针后再给指针赋值,为什么不报错?
最佳答案
- 五星知识达人网友:佘樂
- 2021-04-28 17:50
你释放的是指针所指向的内容。指针本身不会被释放。
例如free(p);
p=NULL;
都是合法的。
但是如果你要访问*p则会出错
向被free掉的区域拷贝数据,其行为是未定义的。也就是说有可能正确也有可能错误。你将程序release发布一下,多试几台机子,估计就会出错了。
例如free(p);
p=NULL;
都是合法的。
但是如果你要访问*p则会出错
向被free掉的区域拷贝数据,其行为是未定义的。也就是说有可能正确也有可能错误。你将程序release发布一下,多试几台机子,估计就会出错了。
全部回答
- 1楼网友:舍身薄凉客
- 2021-04-28 18:11
指针被free掉之后只是指针指向的那一部分空间被释放掉了,而指针本身就是一种指针变量,除非程序运行结束或其生存期结束了才消失!!!因此只要程序还在运行,该指针就可以再赋值!!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯