是否存在内存泄露哦

s79947171 2009-03-13 01:32:32

void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
free(str );
}
//是否存在内存泄露???????????
...全文
133 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lei_zhuyan 2009-03-13
  • 打赏
  • 举报
回复
No
blackjenny242 2009-03-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pengzhixi 的回复:]
没有,你已经将内存地址拷贝到str中了,所以不会泄露
[/Quote]
对的
Butland 2009-03-13
  • 打赏
  • 举报
回复
加个分配空间是否成功的判断比较好
ReViSion 2009-03-13
  • 打赏
  • 举报
回复
对呀,应该不会吧
tangshuiling 2009-03-13
  • 打赏
  • 举报
回复

下列特殊情况,程式崩溃!但不会内存泄露
void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num); //内存申请失败,此时*p=NULL;
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello"); //对0地址进行读写操作,直接就over了
printf(str);
free(str );
}


  • 打赏
  • 举报
回复
没有
yangkunhenry 2009-03-13
  • 打赏
  • 举报
回复
木有
zdeepblue 2009-03-13
  • 打赏
  • 举报
回复
当然没有罗。
LZ 为何有此问?
pengzhixi 2009-03-13
  • 打赏
  • 举报
回复
没有,你已经将内存地址拷贝到str中了,所以不会泄露
healer_kx 2009-03-13
  • 打赏
  • 举报
回复
没,
Cloud_drift 2009-03-13
  • 打赏
  • 举报
回复
没有泄露吧~~~

65,211

社区成员

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

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