//动态创建三维数组,四级指针做输出
int get3DArr(char**** arr,int chl,int row,int col) {
char*** p = NULL;//辅助指针
p = (char***)malloc(sizeof(char**)*chl);
for (int i = 0; i <chl ; i++) {
p[i] = (char**)malloc(sizeof(char*)*row);
}
for (int i = 0; i <chl ; i++) {
for (int j = 0; j <row ; j++) {
p[i][j] = (char*)malloc(sizeof(char)*col);
}
}
*arr = p;//挂上
return 0;
}
//完全释放三维数组(释放指向的内存空间,并且将指针的值设为NULL),四级指针做输入
int free3DArr(char**** arr,int chl,int row) {
char*** p = *arr;//辅助指针
//1.释放一级指针
for (int i = 0; i <chl ; i++) {
for (int j = 0; j <row ; j++) {
if (p[i][j] != NULL) {
free(p[i][j]);
p[i][j] = NULL;
}
}
}
//2.释放二级指针
for (int i = 0; i <chl ; i++) {
if (p[i] != NULL) {
free(p[i]);
p[i] = NULL;
}
}
//3.释放三级指针
if (*arr!=NULL)
{
free(*arr);
*arr = NULL;
}
return 0;
}
动态创建和释放三维数组
猜你喜欢
转载自blog.csdn.net/itswrj/article/details/88366021
今日推荐
周排行