C/C++内存分配问题,求助_求助_求助~~~

xiaoxiaolin198978 2011-05-20 02:01:20


char *p = NULL;
p = (char *)malloc(100);
free(p);

此时p指针的值是多少啊,是NULL?void?

若是换成new和delete呢?
...全文
96 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ang_biwen 2011-05-20
  • 打赏
  • 举报
回复
+1[Quote=引用 10 楼 qingkongxiaoyang 的回复:]
是野指针。所以做
free(p);

delete(p);
操作之后,一定要记得做
p = NULL;
置空操作。
不这样的话,当程序复杂时,有时我们仅仅根据p的值是否为空,做一些取值?消毁操作时,很容易出错。
[/Quote]
firefoxbug 2011-05-20
  • 打赏
  • 举报
回复
char *p = NULL;
p = (char *)malloc(100);
free(p);
if(p == NULL)
{
//报错
}
这样最好,至于你的问题楼上都说清楚了··
至善者善之敌 2011-05-20
  • 打赏
  • 举报
回复
有纯属巧合了。。。。。。。
xiaoxiaolin198978 2011-05-20
  • 打赏
  • 举报
回复
很谢谢各位啊,帮我解疑惑~~~
碎碎念 2011-05-20
  • 打赏
  • 举报
回复
free以后p不是null,还是原来的值,p已经是一个野指针不能在使用了。。。
yaohua1210 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qingkongxiaoyang 的回复:]

是野指针。所以做
free(p);

delete(p);
操作之后,一定要记得做
p = NULL;
置空操作。
不这样的话,当程序复杂时,有时我们仅仅根据p的值是否为空,做一些取值?消毁操作时,很容易出错。
[/Quote]
+1
baggiowangyu 2011-05-20
  • 打赏
  • 举报
回复
指向原来分配的那块地址,并且p是野指针
qingkongxiaoyang 2011-05-20
  • 打赏
  • 举报
回复
是野指针。所以做
free(p);

delete(p);
操作之后,一定要记得做
p = NULL;
置空操作。
不这样的话,当程序复杂时,有时我们仅仅根据p的值是否为空,做一些取值?消毁操作时,很容易出错。
JetKate 2011-05-20
  • 打赏
  • 举报
回复
悬垂指针
maoxing63570 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaoxiaolin198978 的回复:]
引用 6 楼 zhll879 的回复:

它的值free后是多少就没有意义了,它爱是多少是多少,不一定了。
为了防止无用free后最好给指针赋值NULL


其实我只是想知道free后还是不是指向原来那块地址?
[/Quote]
你这样看下撒
int *p=(int*)malloc(10*sizeof(int));
printf("%p",p);
free(p);
printf(" %p",p);
xiaoxiaolin198978 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhll879 的回复:]

它的值free后是多少就没有意义了,它爱是多少是多少,不一定了。
为了防止无用free后最好给指针赋值NULL
[/Quote]

其实我只是想知道free后还是不是指向原来那块地址?
小小蔷薇 2011-05-20
  • 打赏
  • 举报
回复
它的值free后是多少就没有意义了,它爱是多少是多少,不一定了。
为了防止无用free后最好给指针赋值NULL
xiaoxiaolin198978 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bdmh 的回复:]

你这样p不是null,所以建议大家free后,加一句 p=NULL,否则用if (p == NULL) 判断就无效了,容易导致访问非法指针
[/Quote]

那p是不是指向原来分配的那块内存空间啊?
yrw8888888 2011-05-20
  • 打赏
  • 举报
回复
你的P是野指针,还是指向原来的地址。
bdmh 2011-05-20
  • 打赏
  • 举报
回复
你这样p不是null,所以建议大家free后,加一句 p=NULL,否则用if (p == NULL) 判断就无效了,容易导致访问非法指针
maoxing63570 2011-05-20
  • 打赏
  • 举报
回复
还是原来你分配的那块地址的那个值
maoxing63570 2011-05-20
  • 打赏
  • 举报
回复
打印出来看下不就知道了

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧