超载+算子中的分段错误

0 c++

我正在写一个class LongInt,我必须超载operator+.

目前,输入值很好,但当它进入函数时,它会显示一个完整的随机数列表,然后发生分段错误(核心转储)

我的功能是:

LongInt LongInt::operator+(const LongInt num){
    LongInt sum;
    int k,j;
    //sum=number+num;
    if((size==num.size) || (size>num.size)){
        for(j=size;j>=2;j--){
            sum.number[j]=num.number[j]+number[j];
            if(sum.number[j]>10){
                k=sum.number[j]/10;
                sum.number[j]=sum.number[j]%10;
                number[j-1]+=number[j-1]+k;
            }
        }
    }
    else
        for(j=num.size;j>=2;j--){
            sum.number[j]=num.number[j]+number[j];
            if(sum.number[j]>10){
                k=sum.number[j]/10;
                sum.number[j]=sum.number[j]%10;
                number[j-1]+=number[j-1]+k;
            }
        }
    cout<<sum<<endl;
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

mas*_*oud 5

唯一可疑的是数组的索引.(胡乱猜测)

你已经设置j=num.size然后你正在使用num.number[j]sum.number[j]哪个可能是错误的原因.