lima-city: Webhosting, Domains und Cloud
1 Pluspunkt 0 Minuspunkte

Die Funktion gets ist unsicher weil sie keine Möglichkeit hat die Länge der Eingabe zu begrenzen. Aber was kann dabei passieren?

char string[50];
printf ("Namen eingeben: ");
gets (string);
printf ("Hallo %s",string);

bezieht sich auf eine Antwort auf: Eingabe mit Leerzeichen in C
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte
Die Funktion liest Zeichen von stdin, bis es ein Zeilenumbruchzeichen (\n) oder das Dateiende erreicht. Wenn die eingegebene Zeichenkette länger ist als der dafür vorgesehene Speicherplatz (Buffer), kann das zu einem sogenannten "Buffer Overflow" führen. Dabei werden die zusätzlichen Daten in Speicherbereiche geschrieben die nicht dafür vorgesehen sind und vielleicht sogar Daten anderer Prozesse anthalten. Im schlimmsten Fall kann das zum Absturz des Computer führen.
von (720 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

266 Kommentare

14 Nutzer