Forum: Compiler & IDEs speicherlayout mehrdimensionale arrays


von Vlad T. (vlad_tepesch)


Lesenswert?

wie rum muss man ein array 64x3byte deklarieren, damit es so im Speicher 
liegt:

1 2 3 4 ... 64  1 2 3 4 ... 64 1 2 3 4 ... 64
und nicht
1 1 1 2 2 2 3 3 3

array[64][3] oder array[3][64]

ich meine eher letzteres.
bin mir aber nicht sicher, ob dies "implementation defined" ist.
wie isr es beim avr-gcc?

vielen Dank
vlad

von DirkB (Gast)


Lesenswert?

array[3][64]

Es ist nicht "implementation defined"

von Vlad T. (vlad_tepesch)


Lesenswert?

ok danke.

von ich (Gast)


Lesenswert?

Die Letzten werden die Ersten sein ;-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Mich würde mal interessieren ob das wirklich nicht "implementation 
defined" ist. Steht dazu etwas im C-Standard?

von Stefan E. (sternst)


Lesenswert?

Simon K. schrieb:
> Mich würde mal interessieren ob das wirklich nicht "implementation
> defined" ist.

Wirklich nicht.

Simon K. schrieb:
> Steht dazu etwas im C-Standard?

Ja.

von explorer (Gast)


Lesenswert?

Man könnte auch einfach das Array mit Werten belegen und dann in den 
Speicher gucken ...

von Andreas B. (andreas_b77)


Lesenswert?

explorer schrieb:
> Man könnte auch einfach das Array mit Werten belegen und dann in den
> Speicher gucken ...

Aber wenn wir nicht schon vorher wüssten, dass es nicht implementation 
defined ist, wüssten wir es nach dem Experiment immer noch nicht…

von DirkB (Gast)


Lesenswert?

Bevor das jetzt spitzfindig wird:
Die Angaben beziehen sich auf C und C++.
Zumindest für C steht es so schon im K&R drin.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.