C++中数组初始化的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:02:35
/*下面这个程序中为什么用m,n初始化table的大小不行,而用常量却可以??请高手解释一下!*/
#include <iostream>
#include <string>
using namespace std;
int main()
{
int a[]={12,23,34,45,56,67};
int b[]={12,23,34,45,56,67};
int m=sizeof(a)/sizeof(a[0]);
int n=sizeof(b)/sizeof(b[0]);
int table[m][n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
table[i][j]=1;
return 0;
}

静态数组大小的定义必须用常量或者枚举类型 若想用一般变量的话 你可以考虑建立动态数组
int **table=new * int [m];
for(int i=0;i<n;i++)
table[i]=new int;

m,n初始化table的大小是可以的,不过要先给m,n值

我这可以运行,没有错误