Не работает printf для длинной арифметики

Пишу код для длинной арифметики. Пока реализована только функция суммы. Почему-то не выводится результат, хотя в консоли ошибок нет.

#include <stdio.h>
#include <math.h>
#include <String.h>
void Sum(char* s1, char* s2, char* result)
{
    int i = 0, transfer = 0;
    int digit1, digit2;
    while (i < strlen(s1) || i < strlen(s2))
    {
        if (i < strlen(s1)) digit1 = s1[i] - '0';
        else digit1 = 0;
        if (i < strlen(s2)) digit2 = s2[i] - '0';
        else digit2 = 0;
        int sum = digit1 + digit2 + transfer;
        result[i] = (sum % 10) + '0';
        transfer = sum / 10;
        i++;
    }
    if (transfer > 0) result[i++] = transfer + '0';
    result[i] = '\0';
}

void Reverse(char* s) {
    int l = strlen(s);
    for (int i = 0; i < l / 2; i++) {
        char temp = s[i];
        s[i] = s[l - i - 1];
        s[l - i - 1] = s[i];
    }
}

int Compare(char* s1, char* s2)
{
    if (strlen(s1) == strlen(s2));
    {
        for (int i = 0; i < strlen(s1); i++)
        {
            if (s1[i] > s2[i])
            {
                return 1;
                break;
            }
            if (s1[i] < s2[i])
            {
                return 2;
                break;
            }
            if (s1[i] == s2[i])
            {
                continue;
            }
        }
    }
    if (strlen(s1) > strlen(s2))
    {
        return 1;
    }
    if (strlen(s1) < strlen(s2))
    {
        return 2;
    }
    return 0;
}

int main() {
    char s1[1001], s2[1001];
    char* result = (char*)malloc(100000 * sizeof(short));
    printf("Enter the first number: ");
    fgets(s1, 1001, stdin);
    printf("Enter the second number: ");
    fgets(s2, 1001, stdin);
    int sign1, sign2;
    printf("Enter 1 - 2 to choose '+' or '-' for the first number: ");
    scanf_s("%d", &sign1);
    printf("Enter 1 - 2 to choose '+' or '-' for the second number: ");
    scanf_s("%d", &sign2);
    int cmp = Compare(s1, s2);
    Reverse(s1); Reverse(s2);
    printf("Enter 1 - 6 to select operation: ");
    int selection;
    scanf_s("%d", &selection);
    if (selection == 1)
    {
        if (sign1 == 1 && sign2 == 1)
        {
            Sum(s1, s2, result);
            Reverse(result);
            printf("Sum is: %s\n", result);
        }
    }
}


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