프로그래밍/C++, C언어 오류 해결

"const char *" 형식의 인수가 "char *" 형식의 매개 변수와 호환되지 않습니다.

FORHAPPy 2021. 9. 3. 16:38

아래와 같이 코딩을 하다가 오류가 발생함

 

<아래>

void print_nospace(char *str) { 중략 }
int main()  {print_nospace("Hello, World!\n");}

매개변수로 char *str를 사용하는 도중에 에러가 발생.

 

<해결>

매개변수로 const char *str 입력

 

"Hello, World!\n" 은 변수가 없는 문자열

프로그램상에서 주소값으로 접근할 수 없기때문에 

함수의 매개변수로 넘겨주려면 const를 적어줘야 한다.   

 

즉, 대입하려는 문자열이 문자열 상수 이기때문에  const 를 붙여준다

 

C에서는 문자열 리터럴이 char의 배열이지만, C++에서는 const char의 배열이다.

 

이 오류는 비쥬얼 스튜디오 2017이상에서 발생.