コンパイラ エラー C2057
定数式が必要です。
コンテキストには、コンパイル時に値が認識される定数式が必要です。
コンパイラは、型のインスタンスに領域を割り当てるため、コンパイル時にその型のサイズを認識する必要があります。
例
次の例では、C2057 を生成し、その修正方法を示しています。
// C2057.cpp
int i;
int b[i]; // C2057 - value of i is unknown at compile time
int main() {
const int i = 8;
int b[i]; // OK - value of i is fixed and known to compiler
}
C 言語の定数式には、より制限の厳しい規則があります。 次の例では、C2057 を生成し、その修正方法を示しています。
// C2057b.c
#define ArraySize1 10
int main() {
const int ArraySize2 = 10;
int h[ArraySize2]; // C2057 - C does not allow variables here
int h[ArraySize1]; // OK - uses preprocessor constant
}