www.mikrocontroller.net

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


Autor: Gena (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gena (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.