Erro do Compilador C2057
expressão constante esperada
O contexto requer uma expressão constante, uma expressão cujo valor é conhecido no tempo de compilação.
O compilador deve saber o tamanho de um tipo no tempo de compilação para alocar espaço em uma instância desse tipo.
Exemplos
O exemplo a seguir gera o erro C2057 e mostra como corrigi-lo:
// 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 tem regras mais restritivas para expressões constantes. O exemplo a seguir gera o erro C2057 e mostra como corrigi-lo:
// 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
}