[VS] Stack around the variable '변수명' was corrupted

Programming/VisualStudio|2017. 1. 20. 10:30
반응형

Stack around the variable '변수명' was corrupted 원인과 해결법



안녕하세요~


얼마 전 회사에서 Stack around the variable '변수명' was corrupted 디버그 에러를 뱉어내면서


해당 프로그램이 멈추는 버그가 나왔습니다.


무언가 찾아봤더니 해당 변수명이 만약 배열이거나 한정된 자원을 선언했을 때


그것보다 더 큰 메모리를 넣거나 접근할 때 문제가 된 것이였습니다.





아래는 문제 될 수 있는 코드 예제입니다.


char test10[10];

char test17[17];

strncpy(test10, test17, sizeof(test17));


// 1번째 인자값에 넣은 배열은 10을 잡아놨는데 17만큼 복사



이런 식으로 사이즈가 맞지 않은 배열끼리 메모리를 복사할 때 나오기도 합니다.


문제는 안 나올 때도 있긴한데 그래도 위와 같은 코드는 안 쓰는게 좋을 듯합니다.



반응형

댓글()