• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

정말 햇갈리는 부분이 있습니다(포인터&참조)

21.10.31 21:32 작성 조회수 108

0

void CreatePlyer(Statinfo* Plyerinfo);

 

struct Statinfo

{

int hp = 100;

int attack = 10;

int mp = 20;

int defence = 10;

 

};

        Statinfo Plyerinfo;

CreatePlyer(&Plyerinfo);

void CreatePlyer(Statinfo* Plyerinfo)

{

          Plyerinfo->hp = 300;

}

요기서 이 빨간 부분을 전 참조형태로 보내고 싶습니다

그래서 이 빨간 부분을Statinfo& Plyerinfo 이렇게 바꾸고

밑에 있는 Plyerinfo.hp 이런식으로 바꿨습니다

 

그리고 그 위에

CreatePlyer(&Plyerinfo); 이부분을

CreatePlyer(Plyerinfo); 이런식으로 바꿨는데 참조되지 않는 어떤 형식이라고 자꾸 오류를 밷어 내는데 

다른 int 형 이나 배열등등은 이런식으로 넘겨지는걸로 아는데 왜  struct  구조체는 안넘어 가는지 이해가 되지 않습니다

 

혹시 제가 지금 뭘 잘못하고 있는건지 알려주실수 있나요?

 

 

글을쓰고 한참 보고난 후에 뭐가 잘못됬는지 알았습니다 

 

제일 위에 함수 선언하는곳에서 

void CreatePlyer(Statinfo* Plyerinfo);

이렇게 선언을 해서 

void CreatePlyer(Statinfo& Plyerinfo); 

이런식으로 변환이 안되던 거였군요 이거 이렇게 바꾸니 오류가 사라졌습니다 ^^

답변 1

답변을 작성해보세요.

0

 ㅎㅎㅎ C++이 참 문법이 피곤하죠