ХЗ в чём проблема конкретно, но погадаем на кофейной гуще. Пример:
- выделяем память str1=memalloc(10) под строку в 10 символов.
- делаем strcpy(str1, "0123456789")
- в результате получаем затирании "соседней переменной" тк по факту строка из 10 символов фактически занимает 11 байт памяти (помним о "терминальном символе НОЛЬ" в конце строки).