参见这篇博文mlloc分配的内存是放在堆段的,只有编程者自己手动通过free来释放内存的。所以不会因为函数执行完毕就释放其内存。
但是这种方法要求编程者谨记要自己手动释放内存,这种写法不太好,因为malloc和free不在同一个代码块中很容易忘记使用free.
方法五:也许是最好的解决方案
void func(char *result,int size)
{
strcpy(result,"test",size);
}
buffer = malloc(size);
func(buffer,size);
free(buffer);
这种方案只要malloc和free的使用在一个代码块中那么内存管理就显得轻松了。
四:总结
C语言真的很简单,简单到什么都要自己做。