두 개의 목록 l1, l2에 각각 데이터 [1,1,1] 및 [2,2,2]를 제공합니다.분할 오류 및 과부하 연산자
나는 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"으로 변경하면 작동 할 수 있습니다.
또 다른 문제점은 List to List &을 변경하려고 시도하는 것입니다. 주소가 다른 문제가 있습니다.
는 운영자의 서명이'목록 및 목록 :: 연산자 + = (const를 목록 및 기타) {'해야합니다. 세그먼테이션 결함은'List'의 복사본이 만들어 질 때 나타납니다. – user0042
프로그램의 다른 곳에 버그가 있습니다. 내 수정 구슬은 "3의 규칙"을 찾아야한다고 생각합니다. – molbdnilo
[mcve] 있으시기 바랍니다. – user4581301