gpt4 book ai didi

c - 释放函数本地指针并返回该指针

转载 作者:行者123 更新时间:2023-11-30 16:56:20 25 4
gpt4 key购买 nike

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

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

更新:是的,我知道这没有意义,而且我们不能两者兼得。我正在寻求替代方法。问题是,如果我不释放指针,它会因高输入值而消耗大量内存。我想摆脱高内存使用率。

最佳答案

Want to do both.

这不是一个好目标。

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

Note that I have a recursion so I want to free up the pointer in the function itself.

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

您的函数应如下所示:

char * ABCfunction()
{
char * p = malloc(10*sizeof(char));
//do something with p

char* p1 = ABCfunction();
// Use p1.
// Then free p1
free(p1);

return p;
}

关于c - 释放函数本地指针并返回该指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39940197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com