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

例如定义

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

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

阅读 3.6k
1 个回答

这种情况由调用者负责释放(例如 strdup 函数),或者你再提供一个用于释放你返回的东西的接口(很多库的做法)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进