如何释放四维数组分配的内存
时间: 2023-09-10 16:05:52 浏览: 93
C语言动态分配二维数组
释放四维数组分配的内存可以通过以下代码实现:
```c
int ****arr4d; // 定义四维数组
int i, j, k, l; // 四维数组的下标
int dim1 = 10, dim2 = 20, dim3 = 30, dim4 = 40; // 四维数组的维度
// 分配内存
arr4d = (int ****)malloc(dim1 * sizeof(int ***));
for (i = 0; i < dim1; i++) {
arr4d[i] = (int ***)malloc(dim2 * sizeof(int **));
for (j = 0; j < dim2; j++) {
arr4d[i][j] = (int **)malloc(dim3 * sizeof(int *));
for (k = 0; k < dim3; k++) {
arr4d[i][j][k] = (int *)malloc(dim4 * sizeof(int));
}
}
}
// 使用四维数组
// 释放内存
for (i = 0; i < dim1; i++) {
for (j = 0; j < dim2; j++) {
for (k = 0; k < dim3; k++) {
free(arr4d[i][j][k]);
}
free(arr4d[i][j]);
}
free(arr4d[i]);
}
free(arr4d);
```
这段代码首先使用 `malloc` 函数分配内存,并使用四重循环访问数组中的元素。最后,使用 `free` 函数释放内存,也使用四重循环来释放每个维度的内存。注意,释放内存的顺序应该与分配内存的顺序相反。
阅读全文