C ++定义与一个常量变量数组大小(c++ defining array size with a c

2019-10-23 13:02发布

int place = determinePlace(input);

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

嗨!

我试图用一个const int变量定义小数[]阵列的大小。 然而,错误C2057和错误C2466不断上来。

有没有什么建议?

Answer 1:

约阿希姆是正确的,你想设置:

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

这不起作用,因为你试图让用户输入或类似的东西,当你运行该程序不是当你编译它,这将是唯一的访问。

我会尝试这样的事:

#include <vector>

using std::vector;

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


Answer 2:

即使你声明arraySizeconst ,它仍然不是一个编译时间常数,因为它必须计算运行时间。

使用std::vector ,而不是:

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


Answer 3:

阵列的大小应intunsignedunsigned intsize_t不小数类型double

使用std::vector

使用

#include <vector> // include the header 

定义矢量

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

这定义了的1 2 5 a值,,3,4,矢量INT

添加一些值

vec.push_back(12);

增加了12〜VEC矢量



文章来源: c++ defining array size with a const variable