社区
C++ 语言
帖子详情
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
打赏
收藏
C/C++内存分配问题,求助_求助_求助~~~
char *p = NULL; p = (char *)malloc(100); free(p); 此时p指针的值是多少啊,是NULL?void? 若是换成new和delete呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
打印出来看下不就知道了
Linux下C语言编程基础知识
这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统
求助
c++
基础教程,简洁扼要
70 动态
内存分配
Dynamic memory pointer = new type pointer = new type [elements] 第一个表达式用来给一个单元素的数据类型分配内存。第二个表达式用来给一个数组分配内存。 例如: int * bobby; bobby = new int...
Cpp_MIT_course_Assignments:为 MIT OCW C 和
C++
课程学习和完成的作业和讲座集
C++
_MIT_course_Assignments
求助
热线! + 其他有趣的页面阅读 [PDF 幻灯片] 来自 scott ...C 内存管理和
C++
面向对象编程简介 使用 OpenMP 和 MPI 对多核机器进行并行编程 如何成为大师级的oops设计师?? [pdf]
ZEC 彩色控制台贪吃蛇(Win32)
C++
源代码v0.05
ZEC 彩色控制台贪吃蛇(Win32)
C++
源代码v0.05,1/4成品,
求助
版。 使用Visual
C++
2010 Express。
在
C++
Builder中动态生成复杂报表
Quick.Report是
c++
Builder中以组件形式存在的报表设计器。它制作报表的功能非常强大,能轻松地制作各种常规报表;但对于有特殊要求的报表,由于目前大多数书籍对Quick.Report研究不深,用户往往另辟蹊径,通过
求助
...
C++ 语言
64,642
社区成员
250,580
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章