【发布时间】:2016-03-07 13:07:51
【问题描述】:
#include<stdio.h>
#include<stdlib.h>
int * doall() {
int *a;
a=(int*)malloc(sizeof(int)*2);
a[0]=2;
a[1]=3;
return a;
}
int main() {
int *arr;
arr=doall();
for(int i=0;i<2;i++) {
printf("%d ",arr[i]);
}
printf("\n");
free(arr);
return 0;
}
可以free(a);吗? free(arr) 是否在 doall 函数中释放“a”?
在doalla=(int*)malloc(sizeof(int)*2);
【问题讨论】:
-
是的,它将被释放。
-
free(arr);将释放 doall() 中分配的内存
标签: c memory memory-leaks