INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?)
13.03.2018, 15:14
Beitrag #1
Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?)
Hi,

ich würde gerne die größe eines Arrays zur Laufzeit festlegen. Prinzipiell würde sich ja hier malloc eignen, aber dank der fehlenden Speicherverwaltung auf einem µC laufe ich da auf Gefahr dass mir der RAM ausgeht, bzw. zu stark zerwürfelt wird: https://arduino.stackexchange.com/questi...on-arduino

Gibt es evtl. schönere/elegantere Lösungen?

VG
da_user
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2018, 15:48
Beitrag #2
RE: Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?)
Nein, gibt es nicht. Wenn Du malloc verantwortungsvoll benutzt, geht es.
Also nicht laufend anlegen und zerstören. Einmal anlegen und so sollte es dann bleiben.

Warum brauchst Du veränderliche Arrays (oder nur 1)? Wovon ist die Größe abhängig und was willst Du damit machen?

Ich könnte mir auch eine Lösung in einem FRAM vorstellen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2018, 16:07
Beitrag #3
RE: Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?)
Ich will die Oktanten mehrere Breshamkreises speichern und in unterschiedlicher Reihenfolge wieder ausgeben.

Vielleicht kriege ich es aber auch so hin, dass mir einmal initialisieren reicht. Ist halt etwas Getüftel.

Für FRAM (auch wenn Google erstmal ein Schiff ausgespuckt hat), oder ein normaler ext. RAM währen auch eine Variante.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2018, 16:46
Beitrag #4
RE: Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?)
(13.03.2018 16:07)da_user schrieb:  Für FRAM (auch wenn Google erstmal ein Schiff ausgespuckt hat), oder ein normaler ext. RAM währen auch eine Variante.
Das ist ein nichtflüchtiger Speicher, der seine Daten auch ohne Spannung behält, 100 Billionen Lese- und Schreibzyklen hat und je nach Typ über SPI oder I2C angeschlossen wird.
Bis 32 KByte I2C habe ich schon ausgetestet. Hier hatten wir mal einen Thread dazu. In #22 ist der korrigierte Code. Dort ging es bis 8 KByte.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.03.2018, 01:00
Beitrag #5
RE: Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?)
Hallo da_user,

ich rate von veränderlcihen Array-Größen dringend ab. Im PC-Bereich ist das sehr sinnvoll, weil andere, parallel laufende Programme dann den verfügbaren Speicher nutzen können, Das erfordert aber ein Memory-Management.

Bei einem Mikrocontroller ist es anders: Der Speicher muss für die größte zu erwartende Datenmenge ausreichen. Was nützt es also, wenn Du z. B. maximal 2 kB brauchst und aktuell nur 1 kB dimensioniert? Dann ist eben 1 kB ungenutzt.

Gruß
Guaack
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.03.2018, 09:53
Beitrag #6
RE: Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?)
Also die FRAMs sind sehr interessant. Die werde ich mir aber "nur" im Hinterkopf behalten, für das derzeitige Projekt sind die jetzt nicht so wichtig. RAM ist prinzipiell genügend vorhanden, ich mag es nur nicht, einfach zuviel RAM zu verbraten, wer weiß was da noch alles dazukommt.

Allerdings habe ich wohl eine Lösung im Kopf, wie ich mit einmal RAM reservieren zum initalisieren auskommen sollte. Und ab da steht dann die Arraygröße fest und wird nicht mehr geändert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Code wird langsamer mit der Laufzeit Wampo 9 1.210 05.10.2017 11:32
Letzter Beitrag: SkobyMobil
  AREF auf 2,5 Volt festlegen. arduinofan 3 856 12.02.2016 12:47
Letzter Beitrag: Bitklopfer
  Laufzeit Atwist 16 2.898 22.01.2016 21:49
Letzter Beitrag: hotsystems
  Array während Laufzeit neu definieren BennIY 2 1.267 26.08.2015 19:22
Letzter Beitrag: BennIY
  Schalter als Taster perfekte Lösung? julius858 4 2.163 28.07.2015 11:44
Letzter Beitrag: Thorsten Pferdekämper
  Arraygröße herausfinden scritch 8 1.521 28.04.2015 15:21
Letzter Beitrag: Thorsten Pferdekämper
  Due: freier Speicher für Variablen während der Laufzeit? HaWe 8 2.701 28.04.2015 08:22
Letzter Beitrag: tito-t
  wie kann ich zur Laufzeit die Größe dieses Array festlegen? avoid 12 3.525 22.04.2015 20:33
Letzter Beitrag: Bitklopfer
  Problem mit Eigenbaufräse. Arduino die Lösung? Dominik92 2 3.149 10.12.2013 15:09
Letzter Beitrag: Dominik92

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste