Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 自由二维阵列_C - Fatal编程技术网

C 自由二维阵列

C 自由二维阵列,c,C,具有以下代码: int (*fd)[2]; int memory = n * sizeof(int); fd = malloc(memory); 如何正确释放分配的内存?使用free(fd)释放malloc分配给fd的内存 注意:free()仅将内存块标记为空闲-不强制执行此释放操作 详细解释如下:.一次调用mallo

具有以下代码:

 int (*fd)[2];                                                         
 int memory = n * sizeof(int);                             
 fd = malloc(memory);
如何正确释放分配的内存?

使用
free(fd)
释放
malloc
分配给
fd
的内存
注意:
free()
仅将内存块标记为空闲-不强制执行此释放操作


详细解释如下:.

一次调用
malloc()
-一次调用
free()
。只需
free(fd)
。以这种方式分配时,必须确保
n
包含所需的
int
元素总数,而不是行数。通常最好编写
int(*fd)[2]=malloc(NumberOfRows*sizeof*fd)。这既将列数合并到大小计算中,又避免了在一个位置(fd的声明)而不是另一个位置(表达式的大小)更改
int
时可能出现的错误。@EricPostpischil谢谢!这是个问题。你救了我一天!