我正在编写一个返回数组的函数。在此函数中,我想进行一些计算以给我一个整数,即我要分配内存的数组的大小。因此,在该函数中,我使用malloc分配具有特定大小的数组,然后返回此数组,称为returnArray。
但是,如果我不使用return调用函数会怎样?分配的内存还会分配吗?这是一个非常糟糕的问题吗?我怀疑内存泄漏,但是我不确定。
char * findValueAndCreateArray() {
int value = 0;
while(something, something..) {
value++;
}
char * returnArray = (char*) malloc(sizeof(char) * value);
return returnArray;
}
findValueAndCreateArray;
提前谢谢!
答案 0 :(得分:1)
是的,它将导致内存泄漏。当您从C函数中返回某些内容时,只需复制一个值即可。因此,当您执行malloc()
时,会捕获分配的内存,但是该空间将一直分配到程序结束或free(returnArray);
而且,在使用size_t
分配空间时,应该使用malloc
变量。