有时,我们在使用数组时,一开始并不知道数据多少,创建多大的空间比较好,这样的话使用动态创建数组方便而且使用。
本文章主要讲述的是动态二维数组的创建
Demo:
/*使用二级指针动态申请二维数组*/
#include <stdio.h>
#include <malloc.h>
int main(void)
{
int i,j,m,n;
unsigned short int **p;
scanf("%d %d",&m,&n);
p = (unsigned short int **)malloc(m*sizeof(unsigned short int *));//定义第一列 申请m块指向short int大小的内存,用来存放地址.
for(i = 0;i<m;i++)
{
p[i] = (unsigned short int *)malloc(n*sizeof(unsigned short int));//定义行 开辟n块short int大小的内存,用来存放数据.
}
for(i = 0;i<m;i++)
{
for(j = 0;j <n ;j++)
p[i][j] = 65521+i;
}
for(i = 0;i<m;i++)
{
for(j = 0;j <n;j++)
printf("%d ",p[i][j]);
printf("\n");
}
free(p);
p = NULL;
return 0;
}
这样就可以动态的创建m*n的二维数组。