返回使用malloc分配的数组,但不使用返回

返回使用malloc分配的数组,但不使用返回,c,malloc,computer-science,C,Malloc,Computer Science,我正在编写一个返回数组的函数。在这个函数中,我想做一些计算,得到一个整数,它是我想要分配内存的数组的大小。因此,在函数中,我使用malloc分配一个具有特定大小的数组,并返回这个名为returnArray的数组 但是,如果我调用函数而不使用返回,会发生什么?分配的内存仍将被分配吗?这是一个非常糟糕的问题吗?我怀疑内存泄漏,但我不能完全确定 char * findValueAndCreateArray() { int value = 0; while(something, something..

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

但是,如果我调用函数而不使用返回,会发生什么?分配的内存仍将被分配吗?这是一个非常糟糕的问题吗?我怀疑内存泄漏,但我不能完全确定

char * findValueAndCreateArray() {
int value = 0;

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

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

return returnArray;

}

findValueAndCreateArray;

提前谢谢

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


此外,在使用
malloc

分配空间时,应该使用
size\t
变量。您应该显示代码,以使问题更清楚。如果您的函数返回分配内存的地址,而您不使用它,然后
释放它,则会造成内存泄漏。这与调用
malloc(一些大小)
并忽略其返回值没有太大区别。@Bodo我现在添加了代码。谢谢你的回答。