할당한 거 해제 잘못해서 누수 일어나는 곳 하나 있었는데 이건 금방 해결함
근데 B-트리랑 B+-트리의 삭제 함수에서 Invalid read of size 8 이 발생함...
에러는 아니고 테스트도 잘 통과하는데, 실제로 삭제가 일어나는 곳에서 초기화되지 않은 메모리를 읽은 거 같음
(0 byte 옮기는 부분에서 index out of bound가 일어날 수 있어서 그런 거 같은데, 확실하진 않음)
이런 건 고쳐야 하는 건지, 고치면 어떻게 고쳐야 할 지 모르겠음 -ㅂ-...
address sanitizer 써봤음?
안써봤는데 한 번 해볼게요!
써봤는데 그냥 배열 옮길 때 memcpy()의 dest랑 src가 겹쳐서 그런 거였네요. MST에서는 안쓸 수가 없고 loop로 옮기면 REP 계열의 instruction을 못써서 성능이 떨어지니 그냥 놔두는 게 좋을 거 같아요 알려주셔서 고마워요 '~'
dest랑 src가 겹칠때 쓰라고 만든 memmove가 이써요
헐 고맙습니다 찾아서 적용해 볼게요!
memmove()로 고쳐서 address sanitizer는 통과했는데 valgrind에서 invalid read문제는 그대로인 거 보니 또 다른 문제인 거 같아요 디버거 옵션 주고 삽질하는 중임다...
해결했어요! 인덱스가 0일 때 [-1]을 참조하는 경우가 있었네요 감사합니다! ^<^