Forum: Mikrocontroller und Digitale Elektronik uint8_t array


von Joe D. (Gast)


Lesenswert?

Hallo,

ich möchte in einem AVR-Programm ein uint8_t array verwenden.
Gibt es eine Begrenzung bezüglich der Anzahl der Elemente in einem Array 
vom datentyp uint8_t, also auf 255 Elemente?

Bin mit den C-Standards, was diese Frage betrifft, nicht so sehr 
vertraut. Wenn jmd einen Hinweis hat, wo man solche Dinge nachlesen 
kann, bin ich auch sehr dankbar.


Gruß
Joe D.

von Project HC (Gast)


Lesenswert?

Die Begrenzung ist dein verfügbarer RAM. Um den Rest kümmert sich der 
GCC

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Joe D. schrieb:
> Gibt es eine Begrenzung bezüglich der Anzahl der Elemente in einem Array
> vom datentyp uint8_t, also auf 255 Elemente?

Nein.

Kann dann natürlich sein, dass der Zugriff auf einzelne Elemente dieses 
Arrays etwas langsamer ist, wenn es mehr als 256 Elemente hat.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Joe D. schrieb:
> Gibt es eine Begrenzung bezüglich der Anzahl der Elemente in einem Array
> vom datentyp uint8_t, also auf 255 Elemente?

Nö. Nur weil die Elemente des Array uint8_t sind, heisst das nicht, das 
das Array auch nur 256 Elemente haben kann. Das geht, bis der RAM voll 
ist (oder das Flash, wenn du das Array ins PROGMEM legst).

von Joe D. (Gast)


Lesenswert?

Danke für alle eure Antworten!

von Peter (Gast)


Lesenswert?

Gibt/gab es beim AVR nicht das Problem, dass ein Array maximal 32767 
Elemente groß sein darf, weil das der Maximalwert eines (signed) int 
ist?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Peter schrieb:
> Gibt/gab es beim AVR nicht das Problem, dass ein Array maximal 32767
> Elemente groß sein darf, weil das der Maximalwert eines (signed) int
> ist?

Genauer ist die Begrenzung überschritten wenn

von Rolf Magnus (Gast)


Lesenswert?

Peter schrieb:
> Gibt/gab es beim AVR nicht das Problem, dass ein Array maximal 32767
> Elemente

Nicht Elemente, sondern Bytes.

> groß sein darf, weil das der Maximalwert eines (signed) int

... eines ptrdiff_t

> ist?

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.