开发者社区 问答 正文

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

例如定义

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

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

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

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

    2019-07-17 19:27:34
    赞同 展开评论