C语⾔中如何定义动态⼆维数组并输出
可以按照下⾯步骤进⾏定义⼆维数组并输出:
1 定义⼆维指针。
2 确定数组维数,即⾏数和列数。
3 申请⾏数个⼀维指针⼤⼩空间,并赋值给⼆维指针。
4 对于每个⼀维指,申请列数个元素的空间,并赋值给对应的⼀维指针。
5 输⼊或赋值数据。
6 使⽤双重循环,逐个范围存储单元并输出。
7 逐个释放⼀维指针上的内存。
8 释放⼆维指针上的内存。
以整型⼆维数组为例:
下⾯的代码,实现先输⼊⼆维数组的⾏数m和列数n,并再输⼊m*n个整型数据存到动态⼆维数组中。最后输出所有⼆维数组的元素值。
int main()
{
int**p; //定义⼆维指针。
int m, n;//⾏数和列数。
int i,j;
scanf("%d%d", &m, &n); //输⼊⾏数和列数。
if(m <= 0 || n <= 0) return-1; //⾏数或列数⾮法。
p = (int**) malloc(sizeof(int*) *m);//申请⼀组⼀维指针空间。
for(i = 0; i < m; i ++)
p[i] = (int*)malloc(sizeof(int) * n); //对于每个⼀维指针,申请⼀⾏数据的空间。
for(i = 0; i < m; i ++)
for(j = 0; j < n; j ++)
scanf("%d",&p[i][j]);//输⼊第i⾏第j列的数据。其中&p[i][j]也可以写作p[i]+j或者是 *(p+i) + j. 功能相同。
printf("输⼊的数组为%d⾏%d列:\n", m, n);
for(i = 0; i < m; i ++)
{
for(j = 0; j < n; j ++)//这个循环可以输出⼀⾏元素。
printf("%d ", p[i][j]);//输出i⾏j列的元素。
printf("\n");//每⾏输⼊结束加换⾏符。
}
//释放内存
for(i = 0; i < m; i ++)
free(p[i]);
怎么定义二维数组c语言
free(p);
return0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。