Linked List, Implementation

Gast #2570090
Hallo,

wie implementiere ich in reinem C das Aufbauen einer verketteten Liste? 
Kann ich für jedes neue Element malloc() aufrufen, auch wenn das nur ein 
paar Byte sind? Oder ist da der Overhead für die Speicherverwaltung zu 
groß? Wie macht man das eigentlich sonst?

Dank und Gruß,
Matze
Matze schrieb:
> wie implementiere ich in reinem C das Aufbauen einer verketteten Liste?

Schon mal nachgesehen wie viele Treffer das in Google ergibt?

Matze schrieb:
> Kann ich für jedes neue Element malloc() aufrufen, auch wenn das nur ein
> paar Byte sind?
So macht man das normal. Welche Alternative hast du denn?

Matze schrieb:
> Oder ist da der Overhead für die Speicherverwaltung zu
> groß?
Wie groß ist der Overhead? Ein Zeiger auf das nächste Element, plus das 
was das Memory Management braucht.
Die Frage ist doch bringt dich das in irgendeine Not wegen Speicher?

Matze schrieb:
> Wie macht man das eigentlich sonst?
Man alloziert einen großen Block und schreibt siche eine eigene 
(bessere?) Speicherverwaltung.
Gast
Linked lists, und das in C :staun: Das sind natürlich die allerneuesten 
design patterns aus der Informatik-Hexenküche, dazu findet man (und 
google) kaum weiterführende Informationen, ist ja alles noch nie 
dagewesen ;)

Speicheranforderungen zur Laufzeit brauchen in C nunmal entweder malloc, 
oder du schreibst dir selber einen eigene Spiecherverwaltung, die für 
deine spezielle Datengröße effektiver ist. Ich würde aber mal mit malloc 
anfangen ;)

Oliver

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.