This is a simple problem:
int main()
{
long int a = 100000;
long int b = 100000;
long int c = a*b;
std::cout << c << std::endl;
}
The output for this (in MSVC) is 1410065408
where one would expect 1 followed by 10 of 0's. I use long ints which the container is large enough for a number of this size if I am not mistaken. Why does this occur?