返回分配了malloc且不使用return的数组

时间:2019-02-18 17:35:34

标签: c malloc computer-science

我正在编写一个返回数组的函数。在此函数中,我想进行一些计算以给我一个整数,即我要分配内存的数组的大小。因此,在该函数中,我使用malloc分配具有特定大小的数组,然后返回此数组,称为returnArray。

但是,如果我不使用return调用函数会怎样?分配的内存还会分配吗?这是一个非常糟糕的问题吗?我怀疑内存泄漏,但是我不确定。

char * findValueAndCreateArray() {
int value = 0;

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

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

return returnArray;

}

findValueAndCreateArray;

提前谢谢!

1 个答案:

答案 0 :(得分:1)

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

而且,在使用size_t分配空间时,应该使用malloc变量。