C语言 指针的释放问题
我要写一个C语言函数,返回值是一个在此函数内部malloc的指针变量,请问这个指针我应该什么时候释放?如何释放?
我想,不可能在函数return前调用free释放,这样返回这个指针就没有意义
可是这个函数返回后,我还能再操作这个指针进行free吗?
[解决办法]
- C/C++ code
你可以直接free返回去的那个。。。比如TestMalloc返回一个malloc的指针char *p = TestMalloc();free(p);//
[解决办法]
使用malloc分配的内存是从堆上分配的,跟是否是在函数内分配无关,所以可以在从该函数返回后,再调用free进行释放.
[解决办法]
[解决办法]
- C/C++ code
#include <stdio.h> #include <stdlib.h> #include <malloc.h> char* test(int len){ char* p = NULL; p = (char*)malloc(len);//申请内存 return p;}void main(){ int len = 5; char str0[] = "123"; char *pTemp = NULL; pTemp = test(len); memcpy(pTemp, str0, strlen(str0)); free(pTemp);//用完以后释放 pTemp = NULL; return;}
[解决办法]