본문 바로가기
C++/이게 왜 안돼 ❓❓❓

[C6386] 'a'에 쓰는 동안 버퍼 오버런 발생

by 트럼프 2022. 1. 22.

원인

포인터 동적 할당할 때 생기는 경고문

참 친절하게 쓰기 가능한 범위까지 알려준다.

버퍼 오버플로.. 말 그대로 개발자가 정의한 범위 밖의 공간에 접근했을 때이다.

본인은 변수 이름 까먹었을 때 이 경고 나온다....

 

예를 들어 이런식으로

buf[500]으로 정의했는데 fgetws에서 1000이라고 했다.

빌드는 잘 돼서 문제 없어 보일 수 있는데

VS가 친절하게 주의하라고 경고 띄우고 해결 방안도 제시해 줬으니 되도록 우회하는 것보단 해결하는 게 좋을 것 같다.

*우회 방법: #pragma warning(disable:6386)*

 

해결

fgetws(buf, 500, f); 으로 수정

댓글