Problem mit Code (malloc)
-
Swordfish schrieb:
Es heißt
int main(void)
, nichtint main()
.Da bist du übereifrig.
int main()
ist auch in C 100% ok.
-
hm. War das mal anders?
-
Swordfish schrieb:
hm. War das mal anders?
Nein. Und der Tipp mit dem abschließenden Leerzeichen in scanf ist auch ziemlich schlecht.
-
yay.
-
wäre super wenn man mir unter meinem Beitrag weiterhelfen könnte
-
Das NewLine-Zeichen (Enter) ist noch im Eingabepuffer und daher wird bei fgets() eine leere Zeile eingelesen.
-
wie kann ich dieses Problem lösen ?
-
Guckst du hier: https://www.c-plusplus.net/forum/p1146014#1146014
Und wenn wir schon dabei sind (irgendeiner wird es eh schreiben):
sizeof(char)
ist per Definition 1.
Die Multiplikation ist daher nicht nötig.Der Erfolg von
malloc
sollte auch geprüft werden.Und das
free
fehlt auch am Ende (auch wenn es nach demreturn
automatisch gemacht wird)
-
DirkB schrieb:
[...] (auch wenn es nach dem
return
automatisch gemacht wird)Ist das so standarddefiniert?
-
Fragensteller2 schrieb:
DirkB schrieb:
[...] (auch wenn es nach dem
return
automatisch gemacht wird)Ist das so standarddefiniert?
Nicht vom C-Standard. Aber von allerlei Betriebssystemen garantiert. Nichtsdestotrotz ist es eine gute Angewohnheit immer alle Ressourcen sauber frei zu geben, denn nicht alle (sowohl Betriebssysteme als auch Ressourcen) haben solche Garantien.