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

时间:2015-06-27 15:57:22

标签: c++ arrays variables size

int place = determinePlace(input);

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

嗨!

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

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

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

改为使用std::vector

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

答案 1 :(得分:1)

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

使用std::vector

使用

#include <vector> // include the header 

定义向量

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

这定义了vector int,其值为1,2,3,4,5

添加一些值

vec.push_back(12);

向vec vector添加12

答案 2 :(得分:0)

约阿希姆是对的, 你想要设置:

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

这不起作用,因为您正在尝试获取用户输入或类似内容,只有在您运行程序时才能访问它,而不是在编译时。

我会尝试这样的事情:

#include <vector>

using std::vector;

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