É claro que ele não trava o kernel, você está gravando no espaço de memória virtual do seu próprio programa, não no espaço de memória do kernel real
.
Saiba mais sobre a memória virtual aqui
P.S:
Por que printf
não imprime nada? Por padrão, a saída padrão é com buffer de linha e seu hello world
não contém um separador de linha.
Portanto, se o programa falhar, você não observará essa saída (tente usar puts
ou adicionar \n
em sua mensagem)