Ошибка сегментации в десятичной функции в двоичную - PullRequest
0 голосов
/ 20 января 2020

Я попытался написать функцию, которая конвертировала бы десятичное число в 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]);
    }
}

Я не совсем уверен, что делаю не так, любая помощь приветствуется.

1 Ответ

0 голосов
/ 20 января 2020
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 используется неинициализировано = неопределенное поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...