高精度2数相乘,我不知道我问题出在哪,求大佬解答

图片说明

#include<bits/stdc++.h>
using namespace std;
int a[101],b[101],c[202];
string s1,s2;
int main()
{
    int i,j,k,x;
    while(cin>>s1>>s2)
    {
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));

        a[0]=s1.size();
        b[0]=s2.size();
        for(i=0;i<a[0];i++) a[a[0]-i]=s1[i]-'0';
        for(i=0;i<b[0];i++) b[b[0]-i]=s2[i]-'0';
        for(i=1;i<=a[0];i++)
        {
            x=0;
            for(j=1;j<=b[0];j++)
            {
                c[i+j-1]=c[i+j-1]+x+a[i]*b[j];
                x=c[i+j-1]/10;
                c[i+j-1]%=10;
            }
            c[i+j-1]=x;
        }
        k=500;
        while(!c[k--]); 
        for(i=k+1;i>=1;i--)
        cout<<c[i];
        cout<<endl;
    }
    return 0;
}

k=500;
while(!c[k--]);
导致数组越界。可以把最后的k值输出来看看。