0

私はプログラミングにかなり慣れていないので、配列を const int で初期化するのに問題があります。これまでのところ、私が持っているコードは次のとおりです。

int temp = 0;
temp += valuesVec.size();
int SIZE = temp; 
int valuesArray[SIZE];

ファイルを読み取り、すべての値を格納するベクトルと同じ数の要素を持つ配列を作成しようとしています。それが私に与えるエラーは次のとおりです。

Error   1   Expected constant expression.
Error   2   error C2466: cannot allocate an array of constant size 0    
Error   3   error C2133: 'valuesArray' : unknown size   
Error   4   IntelliSense: expression must have a constant value

すべてのエラーは次のことにつながります: int valuesArray[SIZE]; SIZE を印刷すると値が 1118 になりました。

私はおそらく何か愚かなことをしていて、おそらくいくつかの基本的なルールを忘れていることを知っていますが... 誰かが指摘するまで、私は自分の本に注ぎ込みます.

4

2 に答える 2

0

SIZEはコンパイル時の定数ではないため (少なくともそうでない限り)、配列をそのサイズとしてvaluesVec静的に宣言することはできません。SIZE

手動で割り当てを試すことができます:

int* valuesArray = new int[SIZE];

覚えていればdelete[]。または、単純に別のベクトルを作成することもできます:

std::vector<int> valuesArray(SIZE);
于 2013-11-12T05:40:22.340 に答える