具有动态大小的静态字符数组

时间:2014-08-13 14:35:32

标签: c++ variable-length-array

我正在创建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;
}

1 个答案:

答案 0 :(得分:4)

VLAs (i.e. variable length arrays)是C99的一个功能,某些C ++编译器(GCC, for example)支持扩展。

标准C ++不允许这样做。