728x90
C++ 프로젝트를 하면서 실행을 끝내고 종료할 때 오류가 떴다..! (이런 메시지를 띄웠다. -> 'HEAP CORRUPTION DETECTED')
그래서 디버거를 이용하여 오류의 원인을 찾아보았다.
그 결과 . . . !
문자열을 동적으로 생성할 때 문자열의 크기를 잘못 정해주었던 탓이었다.( ex: char* name = new char[strlen("홍길동")]; )
어떤 문자열의 길이를 strlen() 함수로 얻어내고, +1을 해주어야 문자열 끝에 들어가는 '\0'값이 들어가는데 나는 +1을 해주지 않아서 문제가 났던 거였다.
나는 그 문자열을 delete해줄 때 오류가 났는데 문자열의 끝이 어딘지 찾지 못해서 오류가 난 것 같다!
앞으로 +1을 꼭 추가해서 문자열 공간을 생성해야겠다!
오류 해결 ❗
고치기 전 | char* name = new char[ strlen("홍길동") ]; |
고친 후 | char* name = new char[ strlen("홍길동") + 1 ]; |
'에러🚨' 카테고리의 다른 글
[js, react, ..] 이 시스템에서 스크립트를 실행할 수 없으므로 yarn.ps1 파일을 로드할 수 없습니다. (0) | 2021.09.22 |
---|