【发布时间】:2016-02-13 12:15:20
【问题描述】:
以这段代码为例:
int *doSomething(void) {
int *something = malloc(sizeof(int));
return something;
}
int main() {
int *point = doSomething();
//code does something...
free(point);
}
我想知道我是否必须释放在doSomething() 中分配的内存,就像在return something; 之后我必须做free(something); 一样吗?或者做free(point); 也清除something?
或者也许我必须在代码结束之前在main 函数中执行free(something);?
【问题讨论】:
-
我认为最后一个行不通,因为某些东西应该只在 doSomething 函数中“可见”...
-
您当前的代码是正确的。