¿Por qué no hay fallas de segmentación en strcpy? [duplicar

Posible duplicado:
Comportamiento indefinido, no especificado y definido por la implementación

Esto debería seg culpa. ¿Por qué no lo hace?

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

    char str1[] = "Sample string. Sample string. Sample string. Sample string. Sample string. ";
    char str2[2];

    int main ()
    {
      strcpy (str2,str1);
      printf("%s\n", str2);
      return 0;
    }

Estoy usando gcc versión 4.4.3 con el siguiente comando:

    gcc -std=c99 testString.c -o test

Traté también de configurar la optimización en o (-O0).

Respuestas a la pregunta(10)

Su respuesta a la pregunta