这种初始化方式,使用大括号:
int *multi = new int{7,3,9,7,3,9,7,3};
该语言于 2011 年引入。较旧的编译器不支持它;一些较新的人(比如你的)只有在你告诉他们的情况下才会支持;对于你的编译器:
c++ -std=c++0x bankNum.cpp
但是,这种形式的初始化对于使用以下命令创建的数组仍然无效new
。由于它很小并且仅在本地使用,因此您可以声明一个本地数组;这不需要 C++11 支持:
int multi[] = {7,3,9,7,3,9,7,3};
这还有修复内存泄漏的优点 - 如果您使用new
分配内存,那么你应该释放它delete
当你完成它时。
如果您确实需要动态分配,您应该使用std::vector
为您分配和释放内存:
std::vector<int> multi {7,3,9,7,3,9,7,3};
请注意,您的 GCC 版本相当旧,并且对 C++11 的支持不完整。