#include <stdio.h>
#include <malloc.h>
#include <conio.h>
// 二维数组a[i][j],等价于 *(p +(i*行的长度) + j); 注意 p = &a[0][0];
int main(void)
{
int n,m,i,j;
int **p; //the pointer to 2D array
puts("Input the number of rows n ,the number of colums m:\n");
scanf("%d%d",&n, &m);
// 动态申请二维数组
p = (int **)malloc( sizeof( int *) * n);
for( i= 0; i < n; i++)
{
p[i] = (int*)malloc( sizeof(int)*m );
}
for(i = 0; i < n ; i++) //初始化二维数组
for(j = 0; j < m; j++)
{
//*( p + i*m + j) = 0; OR
p[i][j] = 0;
}
for(i = 0; i < n ; i++)// 输出初始化后的二维数组
for(j = 0; j < m; j++)
{
//*( p + i*m + j); OR
printf("%d",p[i][j] );
}
getch();
return 0;
}
/*********************************
** date: 2010/5/17
** class: pointer
** version: v1.0
**********************************/