공부/그 외

Visual Studio "const char *" 형식의 값을 사용하여 "char *" 형식의 엔터티를 초기화할 수 없습니다.

sudo 2021. 7. 16. 23:32
char* pText = "String";

다음과 같은 코드를 써서 컴파일하니 이런 오류가 떴다.

'초기화 중' : 'const char[7]에서 'char*'(으)로 변환할 수 없습니다.

 

이 에러가 뜨는 원인은 Visual Studio 2017부터 준수모드로 설정하면 const char* 에서 char*로의 암시적 형변환을 허용하지 않기 때문이다(준수모드는 2번째 방법에서 바꾸는 방법을 소개).

 

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

1번째는 char*를 const char*로 바꾸면 된다.

const char* pText = "String";

 2번째 방법은 Visual studio 설정을 바꿀 수 있는 상황에서 사용할 수 있다. 프로젝트 우클릭 > 속성 > C/C++ > 언어 > 준수 모드를 아니요로 바꾸면 const로 바꾸지 않아도 컴파일이 된다.

'공부 > 그 외' 카테고리의 다른 글

꼬리 재귀(Tail recursion)  (0) 2021.08.04
오브젝트 풀(Object Pool)  (0) 2021.07.19
메모리 풀(Memory Pool)  (0) 2021.07.14
Handle, Handler란?  (0) 2021.07.09
레거시(legacy)란?  (0) 2021.07.08