Aha, der internium-Stümper hat wieder zugeschlagen.
@Frager:
Ignoriere diesen internium-Stümperschrott, ist alles falsch:
- 1,2,4 stehen niemals hintereinander ist Speicher, weder bei deiner Initialisierung des Arrays noch bei der diesbezüglich korrekten (2D-DirkB)Variante
- a wird nicht deklariert, sondern definiert, weil Speicher belegt (und explizit) initialisiert wird
- C99 hat keine anderen "Längenbestimmungsmittel" für Arrays als C89
- internium-Stümper hat die Grundlagen selbst nicht verstanden
printf("%d\t", sizeof(a[1])/sizeof(int));
Hierbei ist auch der Formatspezifizierer bei printf falsch, sizeof liefert immer den Typ size_t und für diesen gibt es erst ab C99 einen passenden, nicht jedoch deinen "%d"