淮安做网站app,大连网站开发选领超科技,企业ci设计,zac博客seo一.区别指针类型
动态分配二维数组的内存不要赋值给行指针#xff0c;而要赋值给二级指针。
二.分配动态二维数组的方法 1.使用指针数组 然后对指针数组的每一个元素分别malloc一维数组 2.直接使用malloc
// 分配了一个指针数组#xff0c;row为二维数组行数
int **p (i…一.区别指针类型
动态分配二维数组的内存不要赋值给行指针而要赋值给二级指针。
二.分配动态二维数组的方法 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));
} 3.使用new
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];}
}