¿Cómo deben usarse las matrices de caracteres como cadenas?

Entiendo que las cadenas en C son solo matrices de caracteres. Así que probé el siguiente código, pero da resultados extraños, como la salida de basura o los bloqueos del programa: #include <stdio.h> int main (void) { char str [5] = "hello"; puts(str); } ¿Por qué esto no funciona? Se...