Я недавно начал программирование на C, и я действительно не могу найти ошибку здесь, как бы я ни старался.Преобразование десятичной в двоичную ошибку (C)
char* dec2Bin(int number) {
char* bin = calloc(9, sizeof(char));
if(bin!=NULL) {
bin[8] = '\0';
int i = 7;
while(number != 0 && i>=0){
bin[i] = (number%2) +'0';
number/=2;
i--;
}
}
return bin;
}
int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
char* bin = dec2Bin(number);
if(bin!=NULL) {
printf("%s", bin);
free(bin);
return EXIT_SUCCESS;
}
return EXIT_FAILURE;
}
Он ничего не отображает после я ввожу номер, и как ни странно, когда я делаю Printf в цикле функции он делает что-то для печати бункера [я].
Заранее вам за помощь.
Возможно, самое подходящее время, чтобы узнать, как использовать отладчик –
@RadLexus: Heh, no. Я был совершенно неправ. Это на самом деле * довольно чрезмерно * с нулевым завершением. На самом деле это ошибка. – EOF
@EdHeal Я новичок в программировании на С, я пытался запустить свою программу с помощью gdb, но он выходит из игры правильно, и я действительно не знаю, как использовать другие функции, я проверил, была ли проблема с записью/чтением значений в мой массив с valgrind, но он не вернулся ничего необычного, если у вас есть хороший учебник, я бы с радостью принял его – aslad