Тема: Допоможіть з завданням по довгій арифметиці ( помилка у моїй програмі)
#include <iostream>
#include <string>
int read_long(int *a) {
    std::string c;
    std::cin >> c;
    int num = -1;
    for(int i = c.size() - 1; i >= 0; i--) {
        num++;
        a[num] = c[i] - '0';
    }
    return c.size();
}
int sum(int *a, int *b, int *c, int size_a, int size_b) {
    int size = std::max(size_a, size_b);
    for(int i = 0; i < size; i++) {
        c[i] += a[i] + b[i]; // знаходимо суму останніх розрядів
        c[i + 1] += a[i] + b[i]; // якщо є розряд для переходу
        c[i + 1] /= 10; // відсікаємо розряд якщо є
        c[i] %= 10;
    }
    if(c[size] == 0) size--;
    return size;
}
int main() {
    int a[250], b[250], c[251];
    int size_a = read_long(a); // повертає довжину масива першого довгого числа, а також вводить в нього цифри довгого числа задом на перед
    int size_b = read_long(b); // теж саме з другим числом
    int kol = sum(a, b, c, size_a, size_b); // повертає довжину масива суми і сам масив
    for(int i = kol; i >= 0; i--) std::cout << c[i]; // виводить сам масив - суму з кінця
    return 0;
}Дано два великих числа. Потрібно вивести їх суму. У самій програмі постарався докладно описати кожен крок. З одного боку, введення великих чисел правильний, але щось не так з функцією їх суми або висновком. Помилку знайти не зміг = (.