asdfgh

Contiene 6 caracteres,

Si se usa strlen(), el valor devuelto es 6

Pero el espacio real ocupado es 7

Debería ser porque se agrega un '\0' al final

'\0' es un marcador de posición, no un carácter

Ocupa el mismo espacio de memoria que un carácter. Un byte

utilizado para marcar el final de la cadena.

Cuando se utiliza printf("s",..);, el sistema buscará automáticamente el carácter de enlace de cadena '\0'. La salida también termina antes de '\0'.