"C2131: 式は定数に評価されませんでした" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2131: 式は定数に評価されませんでした<ソースファイル名>: note: エラーの原因は非定数引数または非定数シンボルへの参照です<ソースファイル名>: note: '<変数名>' の使用量を参照してください

ソース(バグ有り):

int a=10;
int b[a];

int main()
{
return 1; }


原因:
配列のサイズは定数で指定する必要があります。サイズはコンパイル時に定数として確定している必要があります。



対処:
この例では b[a] と指定していますが、コンパイル時には a の値が不明なためコンパイルエラーが発生します。

例えば、b[10] のように定数で指定する必要があります。


ソース(修正済み):

int a=10;
int b[10];

int main()
{
return 1; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]