Ich versuche Wörter aus einer Datei in einen Binärbaum einzufügen. Die Einfügefunktion funktioniert, wenn ich nicht aus einer Datei lese, auch wenn ich versuchte, jeden gelesenen String nach fscanf zu drucken es funktioniert auch, aber wenn ich versuche, es in einen Baum einzufügen, wird nur der letzte String aus einer Datei gelesen. Warum passiert das?Fscanf liest nur ein letztes Wort aus einer Datei
while(1){
if(fscanf(f,"%s %d",string,&x)==EOF)
break;
tree=insert(tree,string,x);
}
Sie machen keine Kopie von 'string' bevor Sie es einfügen. Die 'insert'-Funktion speichert nur einen Zeiger, und alle Baumeinträge zeigen auf denselben String. – Barmar
Bitte geben Sie ein vollständiges Beispielprogramm an, das den Fehler zeigt, damit wir nicht raten, wie der Rest Ihres Codes aussieht. –