二级指针如何初始化
定义一个指向一维数组的二级指针该如何初始化?例如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;
}