Wir müssen einen Binärbaum erstellen, der Inhalt von Textdateien enthält. Die Zeiger selection_a und selection_b zeigen auf eine andere Textdatei im Verzeichnis.Rekursiver Binärbaum gibt Speicherzugriffsfehler
Die Struktur der Text-Dateien folgt: 1. Zeile: Titel 2. Zeile: Optiona 3. Zeile: OptionB 4. - n. Linie: Text.
Die erste Datei wird beim Starten des Programms als Parameter angegeben. Alle Dateien sollten am Anfang des Programms gespeichert werden. Dann wird der Text der ersten Datei angezeigt, und Benutzer kann A oder B eingeben, um fortzufahren. Anhand der Auswahl wird der Text der Dateioption A/B angezeigt und er kann erneut entscheiden.
Die letzte Datei eines Baumes enthält keine Optionen: 2. und 3. Zeile sind "- \ n".
Das Problem ist, liest dieser Code nur alle Option A-Dateien der ersten Struktur. Es liest nicht in irgendwelchen B-Wahlen. Am Ende zeigt das Programm einen Speicherzugriffsfehler.
Ich weiß, dass der Code irgendwie kootisch sein kann, aber wir sind Anfänger in der Programmierung. Hoffe, dass jeder helfen kann. Hier ist der Code:
struct story_file
{
char *title;
char *text;
struct story_file *selection_a;
struct story_file *selection_b;
};
Lernen [ wie Sie Ihr Programm debuggen können (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) und ein [MCVE] erstellen. – iBug
'strcat (Dateiname, txt);' ist falsch, da Dateiname 'auf' argv [1] 'zeigt, die möglicherweise nicht groß genug ist, um" .txt "anzuhängen. –
'char ch = getc (input);' muss 'int ch = getc (input);' sein, um mit EOF vergleichen zu können. –