簡體   English   中英

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 ,它仍然不是編譯時常量,因為它必須在運行時計算。

使用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};

這定義了vector int,其值為1,2,3,4,5

添加一些值

vec.push_back(12);

將vec向量添加12

約阿希姆是對的,你試圖設置:

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

這不起作用,因為您正在嘗試獲取用戶輸入或類似的東西,只有在您運行程序時才能訪問它,而不是在編譯時。

我會嘗試這樣的事情:

#include <vector>

using std::vector;

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM