私は他のオブジェクトのメモリ位置を保持するはずのポインタの配列を持っています。 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;
}
}
は私の参照、ここで間違って参照解除ですか? 非常に助かりました。
コメント「ポインタへのポインタの配列」は、「飛行機へのポインタの配列」を読み込む必要があります。フライトはポインタではありません。 –