Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
se esperaba una expresión constante
Observaciones
El contexto exige una expresión constante, una expresión cuyo valor se conoce en tiempo de compilación.
El compilador debe conocer el tamaño de un tipo en tiempo de compilación para poder asignar espacio para una instancia de ese tipo.
Ejemplos
En el ejemplo siguiente se genera la advertencia C2057 y se muestra cómo corregirlo:
// 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 tiene reglas más restrictivas para las expresiones de constante. En el ejemplo siguiente se genera la advertencia C2057 y se muestra cómo corregirlo:
// 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
}