在用数组解决问题时,如果直接在程序中定义了数组,有的时候数组太大浪费空间,有的时候空间又不够。为了让数组用起来更加顺手,查看了有关动态数组的资料,并尝试做了一个动态二维数组。
#include<stdio.h>
#include<stdio.h>
int main()
{
int i,j,m,n;
printf("输入m行n列:\n);
scanf_s("%d %d",&m,&n); //开始动态改变数组//
int **p=(int**)malloc(m*sizeof(int*)); //申请m个int型的储存空间,并将空间地址转换为int型,储存int型指针。
for(i=0;i<m;i++)
p[i]=(int*)malloc(n*sizeof(int)); //申请n个int型的储存空间,并将空间地址转换为int型,储存整数。
printf("输入%d个整数",m*n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf_s("%d",&p[i][j]);
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d",p[i][j]);
}
for(i=0;i<m;i++) //释放数组空间//
free(p[i]);
free(p);
return 0;
}