C语言,malloc分配的堆内存做返回值问题

例如我们有如下C语言函数

char* return_str() {
char* retVal = (char*) malloc(sizeof(char) * N);
// do something
return retVal;
}
int main(void) {
char* str = return_str();
// do something
return 0;
}

问题是:在函数return_str() 中创建的堆内存 retVal 能否作为返回值?如果能的话,那么在哪里释放这块内存?在main函数中free(str) 吗?

回答

能,在你用的时候,用完就可以手动free了

以上是C语言,malloc分配的堆内存做返回值问题的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>