본문 바로가기
Ghost의 C++ Note/Ghost의 C++ Type 비 일치 Error

Ghost의 C++ Type 비 일치 Error 이 번엔 또 뭘까?

by dark ghost 2023. 10. 25.
728x90
반응형

이 번에도 C++에서 오류가 발생해서 그 원인

알아보고자 이렇게 포스팅을 하게 

되었네요... 좋은 정보로 포스팅

해야 되는데 이제는 거의 안되는 일로 포스팅을 하고

있네요... ㅠㅠ 하지만 그래도 코드

적을때 문제들을 다 알아놓으면

코드가 길어져도 오류를 

찾을 수 있겠다는 긍정적인 생각에

해보는 것이니 이해해주세요...^^

그림 1) func 함수에서의 타입 Error

그럼 이 번에는 '어떤 오류포스팅을 하게 

되었을까? 궁금하시나요?' 궁금하셨으면

좋겠네요.. 그럼 원인은 바로 

Code 속에서 func 함수타입

main 함수타입일치하지 않아서

생기는 에러 때문에 포스팅

하게 되었답니다...

물론 다른 프로그래밍 언어를 접해신 분들은

타입 불일치 에러가 왜 생기는지 아실수도

있으시겠지만 프로그램밍 언어

처음으로 C++를 접하신다면

모르실 수도 있겠네요... 

main.cpp:5:16: note:   initializing argument 1 of ‘void func(int*)’

라는 에러함수반환하지 않는 void 타입함수

에서 int*타입변수반환하려고 하니

나는 에러 네요...

그림 2) 함수 func에서 void 타입을 int타입으로 변경 후 Error

그래서 void func(int *y) 함수

int func(int *y)int형 함수변경하였네요...

그런데 타입을 변경했는데도 이상하게

다시 오류 메시지가 뜨네요.. ㅠㅠ

원인이 뭘까요? ㅠㅠ

main.cpp:13:15: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]

Error 메시지를 보니깐 엥~~  int*에서 int변경 해주라네요...

그러고 보니 int func(int *y) 함수 에서 int *y가 있네요...

그럼 int *y를 그냥 int y변경해 볼게요..

그림 3) 함수 func에서 int *y에서 *제거 후 잘 실행되는 모습

int func(int *y) 함수 에서 *을 빼니 제대로 

실행이 되네요... 원인이 뭐였을 까요?

"아시겠나요?" 원인은 바로 return y에 있기도 하네요..

func 함수int형(정수형 타입)

이고 return 값int 정수형이네요...

그래서 main 함수에서도 int 형으로 받게 되있는데 

int func(int *y) 함수 였을때 int *y는 int 형이

아니라 int 포인터형이네요... 그래서

main함수에서 인자값을 받지

못해서 일어났던 에러였네요...

그래서 전체적으로는 func 함수가 값을 반환하지 않는

void 형이었는데가가 int *y 형이어서 인자값으로도

타입이 일치하지 않아서 일어났던 

에러였네요...

끝까지 긴글 읽으신다고 수고 많으셨네요...

감사합니다...

 

                                                                             by. Ghost

 

 

728x90
반응형

댓글