我正在创建chars的静态数组,其大小定义为运行时。而且我没有收到编译错误。
这怎么可能?
这是我的例子:
void f(const string& val) {
char valBuf[val.size() + 1]; strcpy(valBuf, val.c_str());
cout << valBuf << endl;
}
int main() {
string str = "aaaa";
f(str);
return 0;
}
答案 0 :(得分:4)
VLAs (i.e. variable length arrays)是C99的一个功能,某些C ++编译器(GCC, for example)支持扩展。
标准C ++不允许这样做。