Doing multiplication using numbers in arrays

I'm writing a class that can handle integers up to 40 characters long, I have been able to get add and subtract working fine, but I can't see what is wrong with multiply.

numList is an array of integers (i know, they could be smaller in size), and it just holds the number, index 0 being the least significant number. Using this code, I get small negative numbers (I'm assuming because numList is signed, for when I set it as unsigned, the numbers are extremely large). hugeSize is a #define set at 40. Does anyone see what is wrong with my code? (please no code posting unless it's a small mistake). thank you. (ps, if you need more code, or prototypes, I can upload).

Code:

`void hugeInt::multiply(hugeInt n, hugeInt m) //multiply two hugeInts`

{

for (int t=0; t<hugeSize; t++) //clear current

numList[t]=0;

int val=0;

for (int i=0; i<hugeSize; i++) //multiply each element in n by

{ //every element in m

for (int j=0; j<hugeSize; j++)

{

val = n.numList[i] * m.numList[j];

numList[i+j] = val % 10;

numList[i+j+1] += val / 10;

numList[i+j] += val % 10;

}

}

}