Estoy tratando de convertir un número entero 10 en el número binario de 1010.la conversión de un entero a binario en C
Este código lo intenta, pero me da un error de segmentación en el strcat():
int int_to_bin(int k)
{
char *bin;
bin = (char *)malloc(sizeof(char));
while(k>0) {
strcat(bin, k%2);
k = k/2;
bin = (char *)realloc(bin, sizeof(char) * (sizeof(bin)+1));
}
bin[sizeof(bin)-1] = '\0';
return atoi(bin);
}
¿Cómo convierto un número entero en binario en C?
No hay razón para cualquier asignación (mucho menos 'realloc') para esta operación. El tamaño de un tipo dado en bits es (muy pequeño) una constante, así que simplemente use un buffer que sea del tamaño correcto para empezar. –