【发布时间】:2013-07-23 16:57:16
【问题描述】:
我有一段代码:
int CPUs = GetNumCPUs();
FILE *newFile[CPUs];
我遇到了一个错误。它在第二行标记了“CPU”并说: “表达式必须有一个常数值”。
我尝试使用const,但它不起作用。
【问题讨论】:
-
C++ 没有可变长度数组。
FILE **newFile = new FILE*[CPUs];,或者更好,使用std::vector。 -
您需要一个动态数组,因为 CPU 的数量不是“恒定的”——无法在编译时确定。与其纠结于 new 和 malloc,不如立即学习 std::vector 并养成使用它的习惯。
-
每当你用 C++ 编程并需要一个动态数组时,你应该想到
std::vector。