C++로 텍스트 기반 RPG를 만들고 있습니다. 동일한 오류 팝업이 반복되는데, 근본적으로 잘못된 것을하고 있습니다. ,하지만 나는 무엇을 모르겠다. 검색은 특정 컴파일러 오류에 대한 해결책을 제시했지만 필자가 작성한 코드를 수정하는 데 사용할 수있는 것은 아닙니다.C++에서 별도의 함수로 변수 간의 통신을 설정할 수 없습니다.
질문 답변을 원합니다 : 어떻게 포인터를 사용하여 별도의 함수간에 변수 통신이 가능합니까? 즉, 포인터를 사용하여 변수의 값을 가리킬 수 있으므로 선언되지 않은 함수에서 해당 값을 사용하고 조작 할 수 있습니까?
TL 버전 : "exp"int 변수가 포인터를 사용하여 외부 함수와 통신하도록하려고합니다.
파일 charlvl.cpp에서 :가 여기에 내가 가진 문제가있어 코드의 약간의 : 나는 오류가
롱 버전 "ISO C++ 포인터와 정수 [-fpermissive]의 비교를 금지"
...
int lvl = 1;
int *exp = 0;//value I want communicated to main()
int str = 0;
int vit = 0;
...
파일 fight.cpp (MAIN.CPP)에서 :
...
//you've just killed a monster
cout << "\nThe monster drops to the ground." << endl;
cout << "You gained " << expValue << " experience!" << endl;
&exp += expValue;//&exp is the character's experience.
//expValue is the exp gained upon monster death
//*exp (from charlvl.cpp) is the value I want to communicate to here.
그것은 여기 선언되지 않은,하지만 charlvl.cpp있다. 전역 변수를 사용하지 않고도 charlvl.cpp의 선언 된 변수와 main() 사이의 통신을 설정하려면 어떻게해야합니까?
'* exp + = expvalue' 나는 당신이 찾고있는 것이라고 생각합니다. –
변수가 전역 변수 또는 함수 내에서 선언되어 있습니까? 포인터에 메모리를 할당합니까? 변수가 전역 변수 인 경우 왜 포인터를 사용해야합니까? 다른 소스 파일에서 변수를 'extern'으로 선언 할 수 있습니까? 명백한 구문 오류 외에도이 질문에 올바르게 대답하기에 충분한 정보가 없으므로 완전한 코드를 게시하십시오 (팁은 http://sscce.org/ 참조). –