动态开辟的方式模拟生成一个5x5的二维数组
//模拟二维数组(动态开辟)
#define ROW 5
#define COL 5
void main()
{
//动态开辟行
int** par = (int**)calloc(sizeof(par) , ROW);
if (par == NULL)
{
printf("Out of memory");
return;
}
else
{
//动态开辟列
for (int i = 0; i < ROW; i++)
{
par[i] = (int*)calloc(sizeof(par) , COL);
if (par[i] == NULL)
{
printf("Out of memory");
for (int j = 0; j < i; j++) //申请失败需要释放之前申请的
{
free(par[j]);
}
free(par);
return;
}
}
}
//赋值
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
par[i][j] = (i + 1) * 10 + (j + 1);
}
}
//查看赋值
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
printf("%d ", par[i][j]);
}
printf("\n");
}
//释放
for (int i = 0; i < ROW; i++)
{
free(par[i]);
}
free(par);
}