Jax*_*x-p 9 c malloc free pointers
在C中执行函数(通过malloc)后释放已分配内存的正确方法是什么?我需要分配内存,以某种方式使用它并将其返回,而不是我必须释放它.
char* someFunction(char* a, char* b) {
char* result = (char*)malloc(la + 2 * sizeof(char));
...
return result;
}
Run Code Online (Sandbox Code Playgroud)
使用free.在您的情况下,它将是:
char* result = malloc(la + 2 * sizeof(char));
...
free (result);
Run Code Online (Sandbox Code Playgroud)
此外,如果你正在返回分配的内存,就像你一样strdup,你的函数的调用者必须释放内存.喜欢:
result = somefunction ();
...
free (result);
Run Code Online (Sandbox Code Playgroud)
如果你想在退回之后释放它,那是不可能的.一旦你return从函数中获得了某些东西,它就会自动终止.