본문 바로가기
ETC/ETC

[C언어 에러] "const char *" 형식의 값을 사용하여 "char *" 형식의 엔터티를 초기화할 수 없습니다.

by yoiii 2020. 12. 21.

알고리즘 문제를 풀던 도중, char*형 포인터를 이용하여, 문자열을 초기화 하고자 했는데, 다음과 같은 오류가 발생했다.

 

char *dayOfWeek[7] {"SUN","MON","TUE","WED","THU","FRI","SAT"};

구글에 검색을 해보니, char* 형 포인터와, 문자열과 형식이 다르기에 발생하는 문제라고 한다.

 

해결 방법은 2가지가 있다.


1. 자료형 앞에 const 키워드를 붙여준다.


const char *dayOfWeek[7] {"SUN","MON","TUE","WED","THU","FRI","SAT"};

const를 붙여주면 해결이 가능하지만, 포인터를 조작이 불가능해진다.

(위와 같이, 변경되지 않는 정보를 저장하고자 하는 경우라면 상관 없다.)


2. Visual Studio의 설정을 바꿔준다.


 

프로젝트 > 속성 > C/C++ > 언어 > 준수모드로 들어가서, 준수모드를 아니오로 바꿔준다.

에러가 해결됐다!


2020.12.21

댓글