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 に答える