Ниже приведена рекурсивная функция, которая должна превращать целое число в строку
char* int_to_word(int word_int){
static char new[2];
char alphabet[26]={"abcdefghijklmnopqrstuvwxyz"};
new[0]=alphabet[word_int%27-1];
//new[1]='\0';
if(word_int/27==0){
return new;
}
static char *word;
strcpy(word,strcat(int_to_word(word_int/27),new));
return word;
}
Я получаю ошибку сегментации со строкой strcpy(word,strcat(int_to_word(word_int/27),new));
, когда word_int
> 26. На мойзнания, нет причин, по которым это не должно работать.Мое лучшее предположение состоит в том, что мне нужно как-то выделить word
перед копированием в него, но изменение инициализатора на static char *word=(*char)malloc(100)
не помогло.