超大整数加减,运行说自动分配内存超过2G

错误:

img


代码:
#include
#include<string.h>
#include
using namespace std;
int main()
{
int n;
cin >> n;
char a,b[100000000000000000], c[100000000000000000];
for (int i = 0; i < n; i++)
{
cin >> a;
cin >> b;
cin >> c;
int len1, len2,bigger;
len1 = strlen(b);
len2 = strlen(c);
if (len1 > len2)
{
bigger = len1;
}
else
{
bigger = len2;
}
char c1[100000000000000000] = { 0 }, c2[100000000000000000] = { 0 };
for (int i = 0; i < len1 ; i++,bigger--)
{
c1[bigger] = b[len1 - 1-i] - '0';
}
for (int i = 0; i < len2; i++, bigger--)
{
c2[bigger] = c[len2 - 1-i]-'0';
}
for (int i = bigger; i > 0; i--)
{
if (a == '+')
{
c1[i] = c1[i] + c2[i];
if (c1[i] >= 10)
{
c1[i] = c1[i] - 10;
c1[i - 1] += 1;
}
}
if (a == '-')
{
c1[i] = c2[i] - c1[i];
if (c1[i] <0)
{
c1[i] = c1[i] + 10;
c1[i - 1] -= 1;
}
}
}
if (c1[0] == 0)
{
for (int i = 1; i < bigger + 1; i++)
{
cout << c1[i];
if (i % 3 == 0)
{
cout <<' ,' ;
}
}
}
}

}
题目:

img

100000000000000000这是在闹哪样,你要计算100000000000000000位的数字吗??

宇宙尽头都没你这个离谱