二级指针如何初始化
定义一个指向一维数组的二级指针该如何初始化?例如int(**p)[6];改如何初始化这个变量
#include <stdio.h> #include <stdlib.h> #include <memory.h> #define M 6 #define N 7 int main(int argc, char** argv) { //动态分配 int** array = NULL; int i,j; //为每一行分配记录指针 array = (int**)malloc(sizeof(int*)*M); //为每一列分配内存 for(i = 0; i < M; i++) { array[i] = (int*)malloc(sizeof(int)*N); } //赋值 for(i = 0; i < M; i++) { for(j=0; j < N; j++) { array[i][j] = i*M+j; } } //遍历 for(i = 0; i < M; i++) { for(j=0; j < N; j++) { printf("%02d ",array[i][j]); } printf("\n"); } for(i = 0; i < M; i++) { free(array[i]); } free(array); //指针指向数组 int a[5][6] = {0,1,2,3,4,0}; int (*p)[6] = a; printf("a[0][2]:%d p[0][2]:%d\n",a[0][2],p[0][2]); return 0; }