我想将整数10转换为二进制数1010。
这段代码试图实现它,但我在strcat()函数上遇到了segfault错误:
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语言中将整数转换为二进制?
realloc
了)。给定类型的大小以位为单位是一个常量,因此只需使用正确大小的缓冲区即可。 - R.. GitHub STOP HELPING ICEsizeof int * CHAR_BIT + 1
,以容纳终止空字符。 - Toby Speight