释放函数的局部指针并返回该指针



我有一个类似的C代码。我如何释放指针并返回它?如果我创建另一个局部指针变量并将p赋值给该局部指针变量,则会显示无法返回局部变量指针的警告。注意,我有一个递归,所以我想释放函数本身的指针。任何解决方法。提前感谢。

char * ABCfunction(){
    char * p = malloc(10*sizeof(char));
    //do something with p
    ABCfunction();
    return p;
    //free(p); //Want to do both.
}  

更新:是的,我知道这没有意义,我们不能两者兼得。我要求的是另一种方法。问题是,如果我不释放指针,它会为高输入值消耗大量内存。我想摆脱高内存占用

想两者兼得

这不是一个好的目标。

如果释放了指针,则不应返回该指针。否则,调用函数将得到一个悬空指针。

注意,我有一个递归,所以我想释放函数本身的指针。

确保捕获返回的指针,使用它,然后释放它。

函数应该是这样的:

char * ABCfunction()
{
   char * p = malloc(10*sizeof(char));
   //do something with p
   char* p1 = ABCfunction();
   // Use p1.
   // Then free p1
   free(p1);
   return p;
}  

相关内容

  • 没有找到相关文章

最新更新