关于#c++#的问题:请问我这代码怎么死循环了

https://www.luogu.com.cn/problem/P1303

#include<bits/stdc++.h>
using namespace std;
struct big{
    int a[4005]={0},len=1;
     void read(){
         string s;
         cin>>s;
        for(int i=0;i<s.size();i++){
            a[s.size()-i]=s[i]-'0';
        }
        len=s.size();
    }
    big operator*(big x){
        big c;
        int q[2005][4005]={0};
        for(int i=1;i<=len;i++){
            for(int j=1;j<=x.len;j++){
                q[j][i]=x.a[j]*a[i];
                //c.a[j+i]+=c.a[j+i-1]/10;
                //c.a[j+i-1]%=10;
            }
        }
        for(int i=1;i<=len;i++){
            for(int j=1;j<=x.len;j++){
                c.a[i]+=q[j][i];
            }
            c.a[i+1]+=c.a[i]/10;
            c.a[i]%=10;
        }
        for(c.len=1;a[c.len]!=0;c.len++);
        c.len--;
        return c;
    }
    void print(){
        for(int i=len;i>=1;i--)cout<<a[i];
    }
};
int main(){
    big x,y;
    big c;
    x.read();
    y.read();
    c=x*y;
    c.print();
}

请问我这代码怎么死循环了?