gpt4 book ai didi

c - 返回一个用 malloc 分配的数组而不使用 return

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:46 26 4
gpt4 key购买 nike

我正在编写一个返回数组的函数。在这个函数中我想做一些计算来给我一个整数,这是我想要分配内存的数组的大小。因此,在函数中,我使用 malloc 分配一个具有特定大小的数组,然后返回这个名为 returnArray 的数组。

但是,如果我在不使用返回值的情况下调用该函数,会发生什么情况?分配的内存还会分配吗?这是一个非常糟糕的问题吗?我怀疑内存泄漏,但我不完全确定。

char * findValueAndCreateArray() {
int value = 0;

while(something, something..) {
value++;
}

char * returnArray = (char*) malloc(sizeof(char) * value);

return returnArray;

}

findValueAndCreateArray;

提前致谢!

最佳答案

是的,它会造成内存泄漏。当您从 C 中的函数返回某些内容时,您只需复制一个值。因此,当您执行 malloc() 时,您会捕获分配内存的地址,但此空间将一直分配到程序结束或 free(returnArray);

此外,当您使用 malloc 分配空间时,您应该使用 size_t 变量。

关于c - 返回一个用 malloc 分配的数组而不使用 return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54752585/

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