Posso capire non accettare in input numeri negativi per non complicare le cose, ma lo zero perché no?
Poi, ti conviene lasciare un po' di spazio a sinistra della rappresentazione in colonna perché se il risultato ha più cifre degli addendi non si vede la cifra più significativa.
Riguardo ad addendi di lunghezza diversa, sbagli a calcolare il numero di cifre solo sul primo addendo, calcolalo sul maggiore dei due così sei sicuro.
La somma in colonna di per sé mi sembra faccia il suo lavoro, non ho capito il problema del "riutilizzare array_a", sarà l'ora.