C 语言中函数内动态申请的内存要不要释放掉?

int* fun(int arg) { int * temp = malloc(sizeof(int) * 10; //这里的temp在这个函数结束的…
关注者
10
被浏览
9,961

6 个回答

你需要释放就释放,不需要就别。

具体到这里,当然不能释放。因为你返回了那段内存(的首地址),调用那个函数的后面的代码还要用它呢。要是释放了,返回个毛啊。

malloc申请的内存空间是在堆上的,堆由程序员分配和释放(或者程序结束后由操作系统回收)。

程序中你返回temp说明你可能在函数外使用到函数中申请的内存空间,所以不需要释放。