开发者社区> 问答> 正文

已分配内存的指针作为返回值 该怎么样释放内存!

例如定义

char *p=(cahr *)malloc(10*sizeof(char)); 
strcpy(p, "这是为什么呢?\n"); 
return p;

这里该怎样释放p的内存空间呢? 把free(p)放在return之后 ,它不会执行这一行代码的啊!

展开
收起
a123456678 2016-06-06 09:27:09 2275 0
2 条回答
写回答
取消 提交回答
  • 由调用者负责释放,尽量不这么设计,让调用者分配好之后传进来比较好

    2019-07-17 19:27:35
    赞同 展开评论 打赏
  • 这种情况由调用者负责释放(例如 strdup 函数),或者你再提供一个用于释放你返回的东西的接口(很多库的做法)。

    2019-07-17 19:27:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
低代码开发师(初级)实战教程 立即下载