Функция, которая формирует строку из 2-10 кода числа

Я создала массив строк, в который записываю двоично-десятичный код чисел из другого массива. Но в результате выводится пустая строка, не понимаю, где ошибка:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctime>

#define MAX 10

int Enter(void);
void Generate(int);
void DecToBin(int);
void Print(int);

int arr[MAX];
char str[MAX][100];

void main(void)
{
    int size;
    size = Enter();
    Generate(size);
    DecToBin(size);
    Print(size);
    getchar(); getchar();
}

int Enter(void)
{
    system("chcp 1251");
    int n; // розмір масиву
    printf_s(" Введіть кількість елементів масиву: ");
    scanf_s("%d", &n);
    return n;
}

void Generate(int k)
{
    int i;
    srand(time(NULL));
    printf(" Масив випадкових чисел: ");
    for (i = 0; i < k; i++) {
        arr[i] = rand() + 1;
        printf("%d ", arr[i]);
    }
}

void DecToBin(int k)
{
    int i, j, m = 0;
    int a = 0, b = 0;
    int ost;
    for (i = 0; i < k; i++) {
        b = arr[i];
        for (j = 0; b > 0; j++) {
            a = b % 10;
            b = b / 10;
            int p = 0;
            for (m; p < 4; m++) {
                ost = a % 2;
                str[i][m] = ost;
                a = a / 2;
                p++;
            }
            str[i][m + 1] = ' ';
            m++;
        }
        str[i][m] = '\0';
        char* l = &str[i][0]; 
        char* r = &str[i][m - 1];
        for (; l < r; l++, r--) {
            char t = *l;
            *l = *r;
            *r = t;
        }
        printf("\n %s", str[i]);
        m = 0;
    }
}

void Print(int k)
{
    int i;
    printf("\n\n\t     Таблиця чисел та їх 2-10 кодів");
    printf("\n ------------------------------------------------------");
    printf("\n |     Число      |   ");
    printf("          2-10 код              |");
    for (i = 0; i < k; i++) { // виводимо таблицю
        printf("\n ------------------------------------------------------");
        printf("\n |     %-6d     |", arr[i]);
        printf("     %-25.2s     |", str[i]);
    }
    printf("\n ------------------------------------------------------");
}

Ответы (0 шт):