// 动态开辟一个二维数组
#include
#include
int main()
{
int i = 0;
int j = 0;
int line = 0;
int row = 0;
int **p = NULL;
printf("输入行数:");
scanf("%d", &line);
printf("\n");
printf("输入列数:");
scanf("%d", &row);
printf("\n");
// 申请全部行的首指针
p = (int **)malloc(line * sizeof(int *));
if (NULL == p)
{
return;
}
for (i = 0; i < line; i++)
{
//申请列的指针
*(p + i) = (int *)malloc(row *sizeof(int) );
if (*(p + i) == NULL)
{
return;
}
}
// 初始化数组
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
p[i][j] = i + 1;
}
}
// 输出
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
printf("%d ", p[i][j]);
}
}
printf("\n");
// 释放内存
for (i = 0; i < line; i++)
{
free(*(p + i));
p[i] = NULL;
}
free(p);
p = NULL;
return 0;
}
原文:http://blog.csdn.net/zhaoyaqian552/article/details/44982149