다른 개체의 메모리 위치를 보유하기로되어있는 포인터 배열이 있습니다. list2에 배열을 추가하고 해당 객체의 값을 출력하면 올바른 값을 얻을 수 있습니다. 하지만 다른 함수에서 그것을 인쇄하려고하면 대신 무작위 값을 얻을 수 있습니다.C++ Dereferecing 참조에 의해 지정된 값으로 랜덤 값을 할당 한 포인터
클래스 :
class Airline() {
Airline();
Flight *list2[20]; //array of pointers to Flight
};
class Flight() {
int flightNo;
int MaxPeople;
};
가 비행 기능을 추가
currentPos1 =-1 //Global Variable
void Airline::addFlight(Flight flight) {
currentPos1++;
list2[currentPos1] = &flight;
cout <<(*list2[currentPos1]).flightNo <<"\n"; //Gives proper Value
}
ShowAllFlights 기능 :
void AirDB::showAllFlights() {
for (int i = 0; i <= currentPos1; i++)
{
//Both cout's provide random values;
cout <<"\nFlight Number: " <<list2[i]->flightNo;
cout <<"\nMaxPeople: " << list2[i]->maxPeople;
}
}
내 참조하고 잘못 여기 해제 참조되어 있습니까? 도움이 매우 감사 할 것입니다.
'포인터에 대한 포인터의 배열'은'Flight에 대한 포인터의 배열'을 읽어야합니다. 비행편은 포인터가 아닙니다. –