就是做网站的.....山东济南最新事件
一.区别指针类型
动态分配二维数组的内存不要赋值给行指针,而要赋值给二级指针。
二.分配动态二维数组的方法
-
1.使用指针数组
然后对指针数组的每一个元素分别malloc一维数组 -
2.直接使用malloc
// 分配了一个指针数组,row为二维数组行数
int **p = (int**)malloc(row * sizeof(int*));// 每一行指向一个一维数组
for(int i = 0 ; i < row ; i++){p[i] = (int*)malloc(n * sizeof(int));
}
int **p = new int*[row];for(int i = 0 ; i < row ; i++){p[i] = new int[n];
}
三. 高维数组分配
以三维数组为例
int ***p = malloc(floor * sizeof(int **)); // 共有floor层二维数组for(int i = 0 ; i < floor; i++){ // 每层的二维有row行p[i] = (int**)malloc(row * sizeof(int*));
}for(int i = 0 ; i < floor ; i++){ // 二维数组每行有n列for(int j = 0 ; j < row; i++){p[i][j] = (int*)malloc(n * sizeof(int));}
}
int ***p = new int**[floor];for(int i = 0 ; i < floor; i++){p[i] = new int*[row];
}for(int i = 0 ; i < floor ; i++){for(int j = 0 ; j < row; i++){p[i][j] = new int[n];}
}