Ich habe vor kurzem mit der Programmierung in C begonnen und ich kann den Fehler hier wirklich nicht finden, egal wie sehr ich es versuche.Konvertieren von Dezimal zu Binärfehler (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;
}
Es zeigt nichts, nachdem ich die Nummer und seltsam eingeben, wenn ich eine printf in der Funktion Schleife tun tut es Druck etwas für ist [i].
Vielen Dank im Voraus für Sie helfen.
Vielleicht eine gute Zeit, um zu lernen, wie man den Debugger verwendet –
@RadLexus: Heh, nein. Ich lag völlig falsch. Es ist tatsächlich * ziemlich übermäßig * null-terminiert. Das ist eigentlich der Fehler. – EOF
@EdHeal Ich bin neu in C-Programmierung, ich habe versucht, mein Programm mit gdb zu starten, aber es wird korrekt beendet und ich weiß nicht, wie ich andere Funktionen verwenden soll. Ich habe überprüft, ob es Probleme mit dem Schreiben/Lesen von Werten gibt mein Array mit Valgrind aber es hat nichts Ungewöhnliches zurückgegeben, wenn Sie ein gutes Tutorial haben, würde ich es gerne nehmen – aslad