0

我正在创建大小在运行时定义的静态字符数组。而且我没有收到编译错误。
这怎么可能?
这是我的例子:

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;
}
4

1 回答 1

4

VLA(即可变长度数组)是 C99 的一个特性,一些 C++ 编译器(例如 GCC)支持作为扩展。

这在标准 C++ 下是不允许的。

于 2014-08-13T14:37:40.647 回答