Christian Seiler: Einige C-Fragen

Beitrag lesen

Hallo Martin,

Ich würde aber grundsätzlich von der Verwendung der scanf-Funktionen abraten.

Denn sie haben keine "eingebaute" Bereichsprüfung, können also nicht feststellen, ob der Puffer, auf den die übergebenen Zeiger vereisen, auch wirklich groß genug für das Ergebnis ist (bzw. ob es überhaupt ein gültiger Bereich ist).

Naja, man kann schon %20s machen, tu scanf() nicht *zu* sehr unrecht. ;-) Bei %20s vs. %s vergisst man das 20 halt mal gerne, bei einer Funktion, die die Puffergröße explizit als Parameter erwartet passiert das dagegen nicht, da meckert der Compiler, wenn man den vergisst.

Funktionen, die eine Eingabe untersuchen und auswerten, schreibe ich mir lieber selbst - und zwar immer so, dass sie auch eine Bereichsüberprüfung vornehmen können oder alternativ die maximal zulässige Anzahl Zeichen von der aufrufenden Funktion übermittelt bekommen.

Daher auch hier: Volle Zustimmung.

Viele Grüße,
Christian