C程序中高维数组的动态分配与释放
2012-10-21 21:17
302 查看
在C程序中可调用如下函数进行高维数组的动态分配与释放。
高维数组动态分配函数: //--- for dynamic memory allocation --- /************ * ARRAY3D * Memory allocation procedure for 3D arrays ************/ float ***Array3D(int columns, int rows, int floors) { float ***x; int i, j; if ((x = (float ***)malloc(columns * sizeof(float**))) == NULL ) { fprintf(stderr, "mb3dat: can't allocate memory"); } for (i = 0; i < columns; i++) { if ((x[i] = (float **)malloc(rows * sizeof(float*))) == NULL) { fprintf(stderr, "mb3dat: can't allocate memory"); } for (j = 0; j < rows; j++) if ((x[i][j] = (float *)malloc(floors * sizeof(float))) == NULL) { fprintf(stderr, "mb3dat: can't allocate memory"); } } return x; } // end Array3D() ========================================================================================= 高维数组释放函数: //--- for dynamic memory deallocation --- /**************** * FreeARRAY3D * Memory deallocation procedure for 3D arrays ****************/ void FreeArray3D(float ***uu,int columns, int rows, int floors) { int i, j; for (i = 0; i < columns; i++) { for (j = 0; j < rows; j++){ free(uu[i][j]); } free(uu[i]); } free(uu); return; } // end FreeArray3D() ========================================================================================= 调用示例: // 分配内存 float ***uu; uu = Array3D(LEN, HIG, DEP); // 释放内存 FreeArray3D(uu,LEN, HIG, DEP);
相关文章推荐
- c语言中内存的动态分配与释放(多维动态数组构建)
- C++:多维数组的动态分配(new)和释放(delete)
- c语言中内存的动态分配与释放(多维动态数组构建)
- C++:多维数组的动态分配(new)和释放(delete)
- C++:多维数组的动态分配(new)和释放(delete)
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- 解决vc++DEBUG ERROR问题前几天师弟调试程序的时候出现了这样一个错误,出错的位置是在delete [] 一个动态分配的数组时出现的。 经过调查发现错误是因为他之前在给数组赋值的时候越界了
- 动态分配多维数组和释放其内存
- C语言中内存的动态分配与释放(多维动态数组构建)
- C++动态数组分配与释放
- c语言中内存的动态分配与释放(多维动态数组构建)
- 【转】三维动态数组 分配与释放
- C语言中动态分配数组指针的释放问题
- 设计一个程序,为二维数组动态的分配内存空间并且释放内存空间;数组元素的赋值结果如下:
- 三十二、数组、指针和字符串:动态内存分配和释放
- C++:多维数组的动态分配(new)和释放(delete)
- 二维指针、数组指针和指针数组存储空间的动态分配和释放
- c语言中内存的动态分配与释放(多维动态数组构建)
- C++:多维数组的动态分配(new)和释放(delete)
- C语言动态分配数组程序实现