如何动态申请二维数组

2025-03-06 12:09:05
推荐回答(2个)
回答1:

两种方法,祝你成功

1.new出来

//int *arr; //it can be any other type (char, float)
//arr = new int[n]; //n should be integer variable
#include
void main()
{
int **arr;
int N,M;
cin >> N >> M;

arr = new int*[N];
for(int i=0;i{
arr[i] = new int[M];
}
for(i=0;i{
for(int j=0;j {
arr[i][j]=2;
cout< }
cout<}
cout<
}

2.malloc出来

#include
#include
void main ()
{
int n; //用 malloc 函数定义二维数组
scanf("%d",&n);

int **a;
a=(int **)malloc( n*sizeof(int *)); //定义第一列
for(int i=0;i a[i]=(int *)malloc(n*sizeof(int )); //定义行
for (i=0;i{
for(int j=0;j {
a[i][j]=3;
printf("%d ",a[i][j]);//< }
printf("\n");//cout<}
printf("\n");//cout<
}

回答2:

这个写法不能实现二维数组,应该这样:

//---------------------------------------------------------------------------

#include
#include

#define M 10
#define N 10

int main()
{
int i;
int **a;
a=(int **)malloc(sizeof(int *)*M);
for (i = 0; i a[i]=(int *)malloc(sizeof(int)*N);
}
return 0;
}
//---------------------------------------------------------------------------