分段故障&过载运算符

时间:2017-10-29 15:53:11

标签: c++

我分别给出了两个列表l1,l2和数据[1,1,1]和[2,2,2]。

当我执行l1 + = l2时,它运行下面的程序。

但是,当它返回*时,它会显示分段错误:11

List List::operator+=(const List &other){
unsigned int min_len = (this->_len < other._len) ? _len : other._len;
  for (int i = 0; i < min_len; i++){
      this->_Array[i] += other._Array[i];
  }
  return *this;
}

我不知道为什么会出现这个错误。

然而,如果我改变&#34;返回*这个&#34;到&#34;返回0&#34;,它可以工作。

另一个问题是我尝试将List更改为List&amp;,它有另一个地址问题。

1 个答案:

答案 0 :(得分:-1)

因为您按值返回列表。像这样声明你的方法:

List& List::operator+=(const List &other)