Почему этот код не вызывает segfault?

Почему это не Segfault?

#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;
}

Но это происходит, когда я заменяю 8 на 9 в цикле for.

Примечание: я пытаюсь это на 32-разрядной Linux crunchbang

Ответы на вопрос(3)

Ваш ответ на вопрос