繁体   English   中英

C++ 编译器在具有默认值的动态数组上抛出错误

[英]C++ compiler throws error on dynamic array with default values

Mac g++ 使用以下代码引发编译错误:

#include <iostream>

using namespace std;

int main(int argc, char ** argv) {
    int * p = new int[5] {1,2,3};
    return 0;
}

我尝试了一个在线编译器,它编译并运行没有错误。

mac编译器有问题吗? 我可以做些什么来改变它的工作方式,还是应该安装另一个 c++ 编译器?

编辑:

错误:

test.cpp:6:25: error: expected ';' at end of declaration
    int * p = new int[5] {1,2,3};

编译器目标和版本:

Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0

编译命令:

g++ test.cpp 

没有根本的理由不允许更复杂的初始化程序,只是 C++03 没有针对它的语法结构。 在 C++ 的下一个版本中,您将能够执行类似的操作。 int* p = new int[5] {0, 1, 2, 3, 4};

您可以尝试将-std=c++11添加到命令行,这应该可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM