【学习点滴】c语⾔⽤malloc开辟⼆维数组
#include<stdio.h>
#include<stdlib.h>
int main()
{
int **a;  //⽤⼆级指针动态申请⼆维数组
int i, j;
int m, n;
printf("请输⼊⾏数\n");
scanf("%d", &m);
printf("请输⼊列数\n");
怎么定义二维数组c语言scanf("%d", &n);
a=(int**)malloc(sizeof(int*)*m);
for(i=0; i<m; i++)
a[i]=(int*)malloc(sizeof(int)*n);
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
printf("%p\n",&a[i][j]);    //输出每个元素地址,每⾏的列与列之间的地址时连续的,⾏与⾏之间的地址不连续
}
}
for(i=0; i<m; i++)
free(a[i]);
free(a);
return 0;
}
其中,
a=(int**)malloc(sizeof(int*)*m); 返回⼀个指向(int*)数组的⼆级指针a
for(i=0;i<m;i++)
a[i]=(int*)malloc(sizeof(int)*n);    对a指向数组中的每⼀个⼀级指针开辟⼀⾏空间。

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