El programa no se bloquea en el desbordamiento del montón

He escrito el siguiente programa:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main(int argc, char *argv[]){
  char *input;
  input = (char*)malloc(16);
  printf("input is : %s\n", input);
}

Cuando ejecuto esto como:

./test `python -c 'print "A"*5000'`

No se estrella. Más bien imprime datos.

Cuando usofree(input) despuésprintf, se estrella.

¿Por qué pasó esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta