Forum: PC-Programmierung Vektor[??], Variabel


von Gena (Gast)


Lesenswert?

Hallo Programmiere uC, mit hilfe des IDE von Keil,

bin dabei einen Vektor zu erzeugen der am besten eine Variable Länge 
hat??

Weiss zufällig jemand wie man das macht??

mfg
Gena

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

In C? realloc verwenden.

Auf einem µC ist das allerdings wegen dessen begrenzten Arbeitsspeichers 
oft nicht sinnvoll.
Wieviele Elemente wird Dein Vektor (vulgo Array) denn üblicherweise und 
wieviele maximal aufnehmen müssen?

Wieviel RAM hat der von Dir verwendete µC?

von Gena (Gast)


Lesenswert?

hi,

Also das Array wird max. 48 und min. 18 Elemente aufnehmen.
Weiss nicht auf anhieb wieviel Ram der uC hat, ist ein c167 L40M auf nem 
Phycor Board (Phycor 167 HS/E).

Hab bis jetzt keine Prob. mit dem Ram..

von Karl H. (kbuchegg)


Lesenswert?

Gena wrote:
> Also das Array wird max. 48 und min. 18 Elemente aufnehmen.

Wir reden von einem Array aus Basistypen (also keine Strukturen
oder sowas):

Dann pfeif auf die Dynamik. Der Unterschied zwischen 48 und 18
ist so gering, dass es sich nicht lohnt da eine komplizierte
Verwaltung (ala realloc) sich ins Programm zu holen nur
um manchmal maximal 30 * sizeof(Basistyp) Bytes einzusparen.

Mach dir einfach eine 2-te Variable die dir sagt, wieviele
Elemente von den den 48 tatsächlich benutzt werden und gut ists.

> Hab bis jetzt keine Prob. mit dem Ram..
Na dann spricht ja überhaupt nichts dagegen, das Ganze
pragmatisch zu sehen. Für nicht benutzte Speicherzellen
kriegst du kein Geld zurück. Wenn du das Ganze dynamisch
halten willst, musst du ja trotzdem auch den Worst-case
Fall (dass alle 48 benutzt werden) abdecken und zusätzlich
auch noch den Fall, dass die dynamische Allokierung schief
gehen könnte.

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.