C/C++怎么输入n创建n*n维数组。在C/C++中创建6*6数组int a[6][6]。
但是很多时候要根据输入或给定的数N来设置大小可变的数组a[n][n]。而int a[n][n] 是非法的。
创建a[n][n]数组方法如下:
1.声明一个二级指针**a,并为它分配n*sizeof(int)空间。这样就相当于创建了n行,a[n][]。
2.为二级指针a[i]分配n*sizeof(int)空间,用来存放列。这样就生成了a[n][n]数组。
代码如下:
- #include<stdio.h>
- #include<iostream>
- using namespace std;
- int main()
- {
- int N;
- cin>>N;
- int **a=(int **)malloc(N*sizeof(int));//创建一个2维指针并分配N*int长度的空间
- if(a==NULL)//分配空间错误
- return 0;
- for(int i=0;i<N;i++)
- {
- a[i]=(int*)malloc(N*sizeof(int));//位第i行分配N个整型地址
- if(a[i]==NULL) //如果申请失败释放之前申请成功的空间
- {
- while(--i>0)
- free(a[i]);
- free(a);
- return 0;
- }
- }
- for(int i=0 ;i<N;i++)
- {
- for(int j=0;j<N;j++)
- {
- a[i][j]=1;
- }
- }
- for(int i=0 ;i<N;i++)
- {
- for(int j=0;j<N;j++)
- {
- cout<<a[i][j]<<" ";
- }
- cout<<endl;
- }
- system("pause");
- return 0;
- }
生成6*6数组: