c ++使用const变量定义数组大小

c++ defining array size with a const variable

int place = determinePlace(input);

const int arraySize = (place + 1);
int decimal[arraySize] = {};

嗨!

我尝试使用 const int 变量来定义 decimal[] 的数组大小。 但是,错误 C2057 和错误 C2466 不断出现。

有什么建议吗?

即使您将 arraySize 声明为 const,它仍然不是编译时常量,因为它必须计算 运行-time.

改用std::vector

std::vector<int> decimal(arraySize);

数组大小应为 intunsignedunsigned intsize_t 而不是小数类型 double

使用std::vector

使用

#include <vector> // include the header 

定义一个向量

std::vector<int> vec = {1, 2, 3, 4, 5};

这定义了值为 1、2、3、4、5 的向量 int

添加一些值

vec.push_back(12);

将 12 添加到 vec 向量

约阿希姆是对的, 您正在尝试设置:

const int arraySize = (determinePlace(input) + 1);

这是行不通的,因为您正在尝试获取用户输入或类似的东西,只有当您 运行 程序时才可以访问,而不是编译时。

我会尝试这样的事情:

#include <vector>

using std::vector;

vector<int> decimal;
decimal.resize(determinePlace(input) +1);
decimal = {};