Programm stürzt beim Pufferüberlauf nicht ab

Ich möchte eine Zeichenfolge von der Tastatur lesen und in speichernbuf . Ich setze einchar buf[6] Array, dieses Array kann höchstens 5 Zeichen und speichern\0 .

Dann tippe ich123 456 789 es enthält 11 Zeichen und a\0 kann das programm noch laufen, aber wenn ich einen längeren string eingebe123 456 789 123 456 789 es wird zur Laufzeit abstürzen. Diese beiden Eingänge liegen ebenfalls außerhalb des Bereichs vonbuf , aber kann einer rennen, der andere abstürzen?

Hier ist mein Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void read_str();

int main(){
    read_str();
    system("pause");
    return 0;
}
void read_str(){

    char buf[6] = {};
    scanf("%[^\n]",buf);
    printf("%d\n",strlen(buf));
    printf("%s\n",buf);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage