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

Dino Kim님의 프로필 이미지
Dino Kim

작성한 질문수

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

4.4 strlen() 함수

경고 C6001

작성

·

289

0

저도 아래의 질문자와 같은 현상이 이러나고 있어요

str1~str4 까지 워닝 C6001이 뜨네요 (str2 제외)

이 버전의 IDE를 쓰고 있습니다.

Microsoft Visual Studio Community 2019

Version 16.8.2

답변 1

4

https://docs.microsoft.com/ko-kr/cpp/code-quality/c6001?view=msvc-160

위 문서에 따르면 C6001 경고는 초기화되지 않은 공간을 사용할 때 컴파일러가 주는 경고입니다. 초기화 되지 않은 공간엔 쓰레기 값들이 들어있기 때문에 경고를 주는 것입니다.

str1, str3, str4 배열은 초기화되지 않은 공간이 많습니다. 각각 배열의 방의 갯수가 100개나 되는데 문자 데이터가 들어가 있는 방은 str1 의 경우 5 개, str3, str4 의 경우는 1 개뿐이고 나머지 모든 방들은 초기화 되지 않아 쓰레기 값이 들어가 있는 방입니다. 반면에 str2 는 배열 방의 갯수가 6개이며 이 6개 모두 H, e, l, l, o, \0 이렇게 문자 데이터가 다 들어가 있는 상태입니다. 즉 str2는 배열의 모든 방이 초기화가 모두 되있는 상태입니다.

질문자님의 코드를 알 수 없어서 정확한 원인에 대해 답변드리기는 어려우나 str1, str3, str4의 경우에만 C6001  경고가 뜨신 것으로 보아 초기화 되지 않은 뒤의 인덱스를 가진 원소들을 사용하신 것은 아닌지 확인해보시길 권장합니다! 

Dino Kim님의 프로필 이미지
Dino Kim

작성한 질문수

질문하기