C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
如下代码是错误的 :
int n=5;
int s[n];
C++也不允许对数组的大小作动态定义
如下:
int n;
cin>>n;
int s[n];
以上代码在Dev++中编译无误
但为了代码通用性,建议使用变量创建数组时采用动态创建的方式:
int n;
cin>>n;
int *s=new int[n];
动态二维数组
//n行m列
int **p=new int *[n];
for(int k=0;k<n;k++)
p[k]=new int[m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>p[i][j];
}
}
详见: