I see that your storing all the didgits into an array, never mind that.
Anyway, how can you tell where your last digit is? For instance 100 + 23 (assuming i'm using positive number up to 3 digits) would look something like:
right?
So the problem is the ?, i.e. garbage data. You need to do something like c-strings do and use a "stop" int. Maybe -1 because all the digits should be 0-9. Then the arrays would look like: