[Error] variable-sized object 'page' may not be initialized
时间: 2024-01-21 08:18:01 浏览: 181
Bounded space algorithms for variant of variable-sized bin packing (2005年)
这个错误通常是因为你在定义一个变量时,使用了变量的值来初始化它,并且这个值是在运行时才能确定的。C++ 中不允许在定义变量时使用可变大小的对象进行初始化。
例如,下面的代码就会产生这个错误:
```c++
int n = 10;
int page[n] = {0}; // 错误,n 是一个变量
```
要解决这个问题,你可以使用动态内存分配来创建一个指定大小的数组:
```c++
int n = 10;
int* page = new int[n]; // 正确,动态分配内存
```
或者,如果你的数组大小是固定的,你可以使用常量来定义它:
```c++
const int n = 10;
int page[n] = {0}; // 正确,n 是一个常量
```
注意,使用动态内存分配时,你需要手动释放内存,否则会产生内存泄漏。可以使用 `delete[]` 运算符来释放动态分配的数组:
```c++
delete[] page;
```
希望这能帮助你解决问题!
阅读全文