Warum verursacht dieser Code keinen Segfault?

Warum funktioniert dieser Fehler nicht?

#include <stdio.h>
int main()
{
    int i;
    int arr[] = {1, 2, 3, 4};

    for(i=0;i<8;i++)
    {
        arr[i] = i;
        printf(" %d", arr[i]);
    }

    printf("\n");

    return 0;
}

Aber es funktioniert, wenn ich 8 durch 9 in der for-Schleife ersetze.

Hinweis: Ich versuche es auf 32-Bit-Crunchbang-Linux

Antworten auf die Frage(3)

Ihre Antwort auf die Frage