Czy jest to poprawne w języku C?Definiowanie rozmiaru tablicy przy użyciu zmiennej
#include <stdio.h>
int main()
{
int i = 5;
int a[i]; // Compiler doesn't give error here. Why?
printf("%d",sizeof(a)); //prints 5 * 4 =20. 4 is the size of integer datatype.
return 0;
}
Kompilator nie podaje błędu na wyciągu int a[i];
. nie jest stała, to jak można ją pomyślnie skompilować? Czy to dlatego, że używam kompilatora gcc? Czy jest dozwolone w C++?
Omówienie w [moja odpowiedź tutaj] (http://stackoverflow.com/a/21273849/1708801) o tym, co jest wyrażeniem stałym w odniesieniu do tablic o zmiennej długości jest istotne. –