Buffer Overflow nicht passiert

Ich habe diesen Beispiel-C-Code ausprobiert:

int main()
{
    int array[5];
    int i;

    for (i = 0; i <= 255; i++)
    {
        array[i] = 10;
    }
}

und kompiliere es mit:

gcc -m32 -o a.out buffer2.c

meine Frage ist, warum es keinen Segmentierungsfehler gibt?

Ich benutze Kali Linux 64

vendor_id: GenuineIntel

Modellname: Intel (R) Core (TM) i3-CPU M 350 @ 2,27 GHz

Architecture: x86_64

CPU-Betriebsmodus (e): 32-Bit, 64-Bit

Byte Bestellung: Little Endian

Ich habe den Code bearbeitet, indem ich diese beiden Zeilen hinzugefügt habe:

int main()
{
    int x = 12;

    int array[5];
    int i;

    for (i = 0; i <= 255; i++)
    {
        array[i] = 10;
    }

    printf("%d\n", x);
}

und das ist das Ergebnis:

10
Segmentation fault

Antworten auf die Frage(4)

Ihre Antwort auf die Frage