테이블에없는 레코드에 대해 remove를 호출하면 프로그램이 충돌합니다 ... 논리 값에 누락 값이 전달되고 있음을 가정합니다. 어딘가에 단계.기존 레코드가 아닌 기존 레코드를 호출하면 프로그램이 충돌 함
0
A
답변
0
충돌이 예상됩니다. find에서 nullptr을 확인하지 않습니다. 이것을 쉽게 확인할 수 있습니다 : 해쉬 테이블을 생성 한 후에 find를 실행하십시오.
+0
nullptr 검사가 실제로 문제가되었습니다. 나는 내 질문을 업데이트했다. 테이블에있을 수없는 레코드에 대해 remove()를 호출하면 충돌합니다. – user7795742
+0
두 번째 질문입니다. 새로운 질문을해야합니다. 또한 소스 코드를 제거한 후 사람들이 귀하의 질문에 어떻게 대답 할 것이라고 생각하십니까? – steve
[작은 프로그램 디버깅 방법] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 읽고 디버거 사용 방법을 읽어보십시오. 디버거는 모든 프로그래머 도구 상자에서 필수 도구이며이를 사용하는 방법을 아는 것은 취미 자 프로그래머에게 필수적인 기술입니다. –
합리적으로 최근의 컴파일러를 사용하면'='을 쓸 때 경고하지만 '=='을 의미 할 가능성이 가장 큽니다. 그렇지 않은 경우 업그레이드하거나 더 많은 경고를 사용하는 방법에 대한 설명서를 살펴보십시오. – molbdnilo