指针数组中的C++错误

use*_*928 2 c++ arrays pointers file

我有一段代码:

int CPUs = GetNumCPUs();
FILE *newFile[CPUs];
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误.它在第二行标记"CPU",并说:"表达式必须具有恒定值".

我试过用const但不行.

jro*_*rok 5

你不能在C++中拥有一个可变大小的数组.添加constCPUs没有帮助,它只是使变量只读,但它仍然不是恒定的,因为它是由一个函数在运行时初始化的编译时间.

通常的解决方案是使用向量:

std::vector<FILE*> newFile(CPUs);
Run Code Online (Sandbox Code Playgroud)