有没有办法将任何类型的可变大小的数组初始化为零?所以我想要的是应用这样的东西:
int results[5] = {};
像这样的模板:
T results[i] = {};
当我尝试这样做时,我的编译器会这样说:“结果”声明为“T ()”类型的函数数组。 当我使用任何固定类型名时,我收到此错误:可变大小的对象可能未初始化
此外,i 是调用此函数时传入的变量。
请您参考如下方法:
可变长度数组在 C++ 中是非标准的,并且您的编译器支持它们作为扩展。您的编译器还告诉您扩展的限制:可变长度数组可能没有初始值设定项。作为解决方法,您可以这样做:
int results[i];
std::fill(results, results + i, 0);
当然,更好的方法是使用 std::vector,这样您就不会依赖任何非标准扩展。


