我尝试编写一个函数,将十进制数转换为 32 位二进制数组。这是我的代码:
void show_bits(int x) {
int array[32];
int n;
while (x >= 0) {
if (x%2 == 0) {
array[n] = 0;
}
else {
array[n] = 1;
}
x = x/2;
n++;
}
for (int i; i<32; i++) {
printf("%d ", array[i]);
}
}
我不太确定我做错了什么,非常感谢任何帮助。
最佳答案
void show_bits(int x) {
int array[32];
int n;
while (x >= 0) {
if (x%2 == 0) {
array[n] = 0; /* ERROR HERE: n isn't set */
}
n
使用未初始化 = 未定义的行为。
关于c - 十进制到二进制函数中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59815836/