&Markus,
Hierbei kann man zwar die Länge der Eingabe beschränken, muss aber einen "buffer" angeben. Anders ausgedrückt:
Ich muss zuerst einen String irgendwie in einen Buffer einlesen, um dann überhaupt mal überprüfen zu können, ob der String überhaupt von der Länge passt, wobei es dann natürlich schon zu spät ist, da ein Buffer Overflow bereits stattgefunden hätte können.
Meines Wissens bricht Scanf nach der angegebenen Anzahl von zeichen ab, schreibt also nicht einfach den Buffer weiter voll.
Das ist nämlich (wenn ich mich richtig erinnere) gerade der Witz dabei, weswegen man eine Länge angeben kann, damit es eben genau nicht zum Buffer overflow kommen kann.
Gruesse,
Jorg