не вопрос, поэтому укажите, что не так с первого взгляда: - copyint копирует один символ в указанную память.Итак, что делается: временное значение равно '0', случайное, случайное ....
'0', случайное случайное значение анализируется atoi - undefined, поскольку мы не знаем, что находится под этим указателем.а затем распечатывается ...
вместо strlen malloc strcpy
используется последовательность
Редактировать: он не компилируется, поскольку вы передаете (char *) в функцию, которая принимает (char).(copyint(a,&temp);
)