首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请多谢

2012-02-04 
请高手指点谢谢在Vs2005里面输入 int i1 cini int a[i]结果就报错:1h:\c++\first\first\first.cpp(

请高手指点谢谢
在Vs2005里面输入 int i=1; cin>>i; int a[i]; 
结果就报错:
 1>h:\c++\first\first\first.cpp(39) : error C2057: 
应输入常量表达式 
1>h:\c++\first\first\first.cpp(39) : error C2466: 不能分配常量大小为 0 的数组 1>h:\c++\first\first\first.cpp(39) : error C2133: “a”: 未知的大小为什么啊?

[解决办法]
声明数组的大小应该为常数,不能为变量,如果需要使用变长数组,可以使用malloc或者new动态分配 int i = 1; cin >> i; int* a = new int[i];
[解决办法]
a[i]中的i应该要是常量。
[解决办法]
i为变量,编译时编译器无法确定数组a[i]的长度,所以报错

你如果要使用动态的数组,可以直接使用vector
或者获取i后使用malloc(C)或new(C++)从堆上申请空间
[解决办法]
换成.c再试试
[解决办法]
不同意四楼的看法,编译器是没有问题的.前三位同学说得都很正确..在定义数组时,数级的大小,即i要是个常数.
你可以这样定义:int a[10]; //10为常数因此可以,当然你换成其它的数也行
除些之外你还可以先将i定义成一个常数. 如 const i=10; 或是#define i 10;..
这样你就可以像int a[i]; 这样定义了..
[解决办法]
i为变量,编译时编译器无法确定数组a[i]的长度,所以编译报错 

你如果要使用动态的数组堆上申请空间就可以解决
[解决办法]
嗯!我在VC6.0下编译的时候也是提示不可以用变量做为定义数组时候的下标的.

热点排行