Zum Inhalt springen

K2DaC

Mitglieder
  • Gesamte Inhalte

    1
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von K2DaC

  1. Hi ! Bin neu hier und hab auch gleich mal ne frage ! Hab ein Problem bei einem Projekt wo wir eine Verkettete Liste erstellen sollen Die Liste ansich ist nicht wirklich mein Problem. Eher das die Liste "allgemein" sein soll. Also vom "inhalts"-Typen unabhängig. Die liste kann also int, strings als auch structs "verarbeiten", bzw mit den gleichen funktionen hinzufügen usw. Hier mal kurz die liste typedef struct Knoten { struct Knoten* next ; void* content ; } Knoten ; typedef struct Liste { Knoten* first ; Knoten* last ; int size ; } Liste ; void printList(Liste* l, void (*printContent) (void*)) ; void appand(Liste* l, void* value) ; und hier die Funktionen der liste #include <stdio.h> #include <stdlib.h> #include "Listen.h" void printList(Liste* l, void (*printContent) (void*)) { Knoten* k = l->first ; while (k!=NULL) { printContent(k->content) ; k = k->next ; } } void appand(Liste* l, void* value) { Knoten* neu = (Knoten*) malloc(sizeof(Knoten)) ; if (neu == NULL) { printf("Kein Arbeitsspeicher mehr vorhanden!\n") ; exit(EXIT_FAILURE) ; } ; (*neu).next = NULL ; neu->content = value ; if (l->size == 0) { l->first = neu ; } else { Knoten* letzterKnoten = l->last ; letzterKnoten->next = neu ; } ; l->last = neu ; l->size++ ; // Anzahl der Knoten in der Liste um 1 erhöhen. } Das ganze funktioert auch ! Nun sollen Daten aus einer Textdatei eingelesen werden, und in die liste hinzugefügt werden. Das ganze klappt bei mir nur, wenn meine Textdatei genau eine Zeile hat. Bei zwei zeilen wird die erste überschrieben, und recht abgehackt ausgegeben! Grund, meine "eingelesenen" wörter (mit fgets aus der txt datei eingelesen & mit strtok in einzelne wörter zerteilt) gammeln irgendwo im speicher ohne das speicher reserviert wurde. Soweit sogut. Aber WO soll ich denn speicher reservieren, wenn die liste für den speicher selbst verantwortlich sein soll ? Sobald ich bei appand anfange speicher für "strings" zu reservieren (mal abgesehen davon, dass ich das nichtmal hinbekommen habe bisher), wird das ganze doch wieder auf strings "begrenzt". gibt es eine möglichkeit heraus zu bekommen, welcher typ an "appand" übergeben wurde und dann mit ner if anweisung für den entsprechenden typ speicher zu reservieren ? Hoffe ich habe mein Problem halbwegs verständlich rübergebracht. Ist für die Uni, und ich hab mal wieder viel zu spät angefangen mich damit zu beschäftigen ... Und damit der lerneffekt erhalten bleibt, bin ich über tips / hinweise dankbarer als über vorgefertigte lösungen (halb gelogen aber egal ;P )

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...