int bestx[MAXN];为什么报错
时间: 2023-06-20 11:05:56 浏览: 102
磁带最大利用率问题
5星 · 资源好评率100%
在 C++ 中,如果你在函数外部声明一个数组,那么这个数组的大小必须是一个常量表达式。也就是说,你不能使用变量来定义数组的大小。例如,下面的代码是合法的:
```
const int MAXN = 100;
int bestx[MAXN];
```
而下面的代码是非法的:
```
int n = 100;
int bestx[n]; // error: variable-sized object may not be initialized
```
如果你需要在函数内部定义一个动态大小的数组,你可以使用动态内存分配来实现。例如,下面的代码使用 `new` 运算符在堆上分配了一个数组:
```
int n = 100;
int* bestx = new int[n]; // allocate an array of size n on the heap
// ...
delete[] bestx; // free the memory when you're done using it
```
需要注意的是,使用动态内存分配来创建数组会增加代码的复杂度,需要在使用完数组后手动释放内存,否则会造成内存泄漏。
阅读全文