강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

PSY님의 프로필 이미지
PSY

작성한 질문수

홍정모의 따라하며 배우는 C++

6.12 동적 할당 배열

버퍼 오버런

작성

·

457

2

int len;

cin >> len;

int *array = new int[len] {};

 

array[0] = 1;

array[1] = 2;

 

for (int i = 0; i < len; i++) 

{

cout << (uintptr_t) & array[i] << endl;

cout << array[i] << endl;

}

 

delete[] array;

 

교수님.

코드를 따라 쳐보니 출력에는 이상없습니다.

그런데 경고가 뜨는데요.. 이해가 가질 않습니다.

 C6386 'array'에 쓰는 동안 버퍼 오버런이 발생했습니다. 쓰기 가능한 크기는 'len*4'바이트인데 실제로는 '8'바이트만 쓸 수 있습니다. 

답변 1

2

홍정모님의 프로필 이미지
홍정모
지식공유자

안녕하세요? 빌드할때 warning이 나타난다는 얘기신가요? 제가 지금 코드를 그대로 긁어다 붙여서 해봤는데 워닝이 나타나지를 않네요. 다른 프로젝트에서 나타난 워닝일 수도 있고 버전 차이일 수도 있고 등등 조금 더 확인해보셔야겠네요. 워닝도 어느 줄인지 라인 넘버가 같이 나올겁니다.

PSY님의 프로필 이미지
PSY

작성한 질문수

질문하기