The behavior is undefined if the destination array does not have enough space for the contents of both dest and the first count characters of src, plus the terminating null character.
Необходимо учесть, что числовые значения представлены в прямом кодевозможны проблемы с порядком байтов — судя по всему, числа записаны в big-endian. Если это так, используйте функцию ntohs, которая создана чтобы превращать данные из big-endian (сетевого порядка байтов) в читаемый данной машиной
>Без выделения памяти никуда
Но не по аллокации на символ же. Выделите буфер длиной, скажем, 30 символов. Если он использован, перевыдели в 2 раза больше.
Чтобы понять масштаб проблемы: один вызов malloc/realloc отработает медленнее чем остальной код без malloc и ввода-вывода. А здесь их тьма.