データ[1,1,1]と[2,2,2]で2つのリストl1、l2をそれぞれ与えます。セグメンテーションフォールト&オーバーロード演算子
私はl1 + = 12を実行しますが、以下のプログラムを実行します。
しかし、それは*このリターンをやっている間、それは、セグメンテーションフォールトが表示されます: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;
}
私はそれがこのエラーを得た理由はわかりません。
ただし、「return * this」を「return 0」に変更しても動作します。
もう1つの問題はリストリストを&に変更しようとしていることです。別の問題が発生しています。
あなたのオペレータの署名は、 '{'リスト&リスト::演算子+ =(constのリスト&その他)でなければなりません。セグメンテーションフォールトは、 'List'のコピーが作成されたときに表示される可能性が最も高いです。 – user0042
あなたのプログラムのどこかにバグがあります。私のクリスタルボールは、「3つのルール」を検索すべきだと考えています。 – molbdnilo
私たちには[mcve]がありますか? – user4581301