gpt4 book ai didi

c - 我应该如何释放 C 中的数组?

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:05 25 4
gpt4 key购买 nike

我在 C 中创建了一个释放数组的函数,但我不知道是否正确:

void dealloc_array(void *array[], int size) {

int i = 0;

for (i = 0; i < size; i++) {

if (array[i]) free(array[i]);
}

if (array) free(array);


}

我不确定最后是否应该执行free(array)。从技术上讲,我们已经释放了所有数组元素,因此我们不需要执行 free(array)

感谢您的帮助。

最佳答案

如果您 malloc 指针以及数组的每个元素,您将需要在 for 循环之后释放该指针。

例如:

int **array;
array = malloc(SIZE*sizeof(int*));
for(int ii = 0; ii < SIZE; ii++)
{
array[ii] = (int*)malloc(sizeof(int));
}

您将必须释放每个元素和释放数组。本质上,对于您拥有的每个 malloc/calloc,您必须有一个免费的

关于c - 我应该如何释放 C 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47666283/

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