Lo que te pasa es que estás cometiendo el típico buffer overflow.
Tu pides el tamaño, que te da por ejemplo 100 caracteres y creas el buffer. Pues bien, necesitas uno más, para que entre el '\0', que señala el fin de cadena. Si no, cuando tu pasas un puntero a una función que lo escribe ¿cómo sabría cuál es el final? Ella sigue hasta que encuentra un 0. |