C:TIL- C6385/C6386 오류, C6011 오류

Nayeon Kim·2021년 9월 11일

c language

목록 보기
3/9

결론부터 말하자면 이 세 개의 오류는, 말 그대로 변수의 값에 따라서 "나쁜 일이 발생할 수 있다"의 경고 수준이기 때문에 꼭 해결해줄 필요는 없다. 그래도 코드에서 메모리의 범위를 벗어나는 경우가 안 생기는지, 메모리를 너무 과하게 차지하는 건 아닌지 꼭 확인!

C6385: 'array'에서 잘못된 데이터를 읽고 있습니다. 읽기 가능한 크기는 '20'바이트인데 실제로는 'i'바이트만 읽을 수 있습니다.
-> 지정된 버퍼의 읽기 가능 범위가 읽는 데 사용되는 인덱스보다 작을 수 있어, 만약 유효한 범위를 벗어난 데이터를 읽으려 하면 버퍼 오버런이 발생할 위험이 있음을 알려주는 것.

C6386: 'array'에 쓰는 동안 버퍼 오버런이 발생했습니다. 쓰기 가능한 크기는 '20'바이트인데 실제로는 'i'바이트만 쓸 수 있습니다.
-> 지정된 버퍼의 쓰기 가능 범위가 쓰는 데 사용되는 인덱스보다 작을 수 있어 버퍼 오버런이 발생할 수 있다고 경고를 내려주는 것.

C6011: NULL 포인터 'p'을(를) 역참조하고 있습니다.
-> 포인터가 null일 때, 오류가 발생할 수 있다는 경고를 내려주는 것. 오류 발생할 확률은 적지만, 경고 메시지가 신경 쓰인다면 if문을 이용해 null일 때 따로 오류 처리 해주기

if (p == NULL) {
	fprintf(stderr, "메모리 부족으로 할당할 수 없습니다.");
    exit(1);
}
profile
Department of Computer Science

0개의 댓글