【发布时间】:2014-05-20 04:34:38
【问题描述】:
我知道之前有人问过这个问题,但我不明白为什么它在我的情况下不起作用
void calc(vector<char> zodis1, vector<char> zodis2, vector<char> zodisAts,int zo1,int zo2,int zoA)
{
int i,u=0;
int zod1[zo1]=0;
int zod2[zo2]=0;
int zodA[zoA]=0;
}
zod1、zod2、zoA 的所有 3 个都给我错误:variable-sized object may not be initialized c++
但是编译器应该在初始化之前知道zo的含义,因为cout<<zo1;起作用并打印出含义
那么问题出在哪里?
【问题讨论】:
-
要明确:在标准 C++ 中
int zod1[zo1];是不允许的。但是,许多编译器将其作为扩展提供。从编译器的错误消息来看,它有一个扩展名允许int zod1[zo1];,但没有一个扩展名允许提供=0;。
标签: c++