Ich bin neu in der C-Sprache, und ich versuche zu Lesen ein Zeichen und ein string (ein Satz; max-Länge von 25) von einem Benutzer. Nicht sicher, was mache ich falsch im folgenden code-Zeilen, sein gibt mir eine Fehlermeldung "Segment Fault". String einlesen. #include
c in Abschnitt 9. 3. 4).
Entweder du allokierst einen sehr großen Bereich und kopierst es auf einen passenden Bereich um, oder du musst alles selber machen. Wenn du alles selber machen möchtest, musst du jeden Tasteneingabe (z. B. mit getc) auslesen, in einen allozierten Speicher schreiben, und diesen dann um einen vergrößern (reallozieren, bzw eine verkettete Liste). Solange bis Enter oder so gedrückt wird. Dann würde der Speicherbereich dynamisch mitwachsen. Aus Performancegründen, ist das aber nicht bei Dateieinlesen sondern eher bei Keyboardeingaben zu empfehlen. Außerdem hast du bei verketteten Listen das Problem, dass du für einen Byte Nutzdaten (das Character), einen 4Byte Pointer benötigst. Verkettet Listen haben natürlich den Vorteil dass der kram im Speicher verteilt sein darf, bei alloc wird immer zusammenhängender Speicher benötigt, sodass realloc unter Umständen umkopieren muss, was bei großen Datenmengen auch inperformant werden dürfte. P. String einlesen c online. Foren sind kein Echtzeitkommunikationssystem. 8 das war genau die antwort die ich mir erhofft hatte.