Я пишу функцию в C, которая преобразует число в другое основание, такое как восьмеричное, двоичное, шестнадцатеричное и т. Д. Мы должны написать это рекурсивно, и функция должна возвращать символ *. Тем не менее я получаю сообщение об ошибке сегментации на этот фрагмент кода. Я также не уверен, что преобразование работает правильно, потому что я не могу обойти эту ошибку. Я новичок в C, поэтому я прошу прощения, если есть что-то, что мне явно не хватает.
#include <stdio.h>
char *convertToBaseOut(short int num, int base);
int main()
{
printf("%s", convertToBaseOut(256, 8));
return 0;
}
char *convertToBaseOut(short int num, int base) {
if (num == 0) {
return '0';
}
return convertToBaseOut(num/base, base) + (num % base);
}
Ошибка сегментации
... Программа завершена с кодом выхода 139