¿Qué sucede en C cuando se crea una matriz de longitud negativa?Declaración de una matriz de longitud negativa
Por ejemplo:
int n = -35;
int testArray[n];
for(int i = 0; i < 10; i++)
testArray[i]=i+1;
Este código se compilará (y hace aparecer ninguna advertencia con -Wall habilitados), y parece que se puede asignar a testArray[0]
sin problema. Asignar el pasado que da un error de instrucción segfault o ilegal, y leer algo de la matriz dice "Abortar trampa" (no estoy familiarizado con eso). Me doy cuenta de que esto es algo académico, y (con suerte) nunca surgiría en la vida real, pero ¿hay alguna forma particular que el estándar C diga para tratar tales matrices, o es diferente del compilador al compilador?
Hay un punto y coma no deseado (';') al final de la declaración 'for', creo ... – Arun
¡Gracias, lo arreglé! – jonmorgan