Как работает malloc?
От себя добавлю есть функции по очистке памяти, которые заполняют буфер по вашему адресу каким либо значением обычно 0
1. Вы выделили не массив символов, а массив указателей на символы. Соответственно, размер указателя - 8 байт.
2. C не инициализирует память, выделяемую malloc.