我試圖訪問預訂結構像這個酒店[SomeIndex] .reservations [AnotherIndex] .name但它無法正常工作的變量名稱。如何訪問數組結構在數組中struct C++中的結構?
如何訪問這些變量來填充結構? PS:它編譯,但它顯示在調試器Segmentation Fault中。
struct Reservation{
string name;
};
struct Hotel {
string name;
Reservation *reservations;
};
int main()
{
struct Hotel *hotel;
hotel = new Hotel[20];
hotel->reservations=new Reservation[10];
hotel[9].name="Olympus Plaza";
hotel[9].reservations[5].name="John Doe";
cout<<"Hotel: "<<hotel[9].name<<" Name: "<<hotel[9].reservations[5].name<<endl;
return 0;
}
它看起來像你的問題是主要的'第三行()'您在哪裏分配保留而不需要解除引用。你應該指定你想要分配哪個'酒店'10個'預訂'結構,然後再訪問你還沒有分配的酒店[9] .reservations [5]'。 – Frecklefoot
另外,你應該使用std :: vector(或std :: array,因爲你似乎使用的是固定大小),但至少在struct的構造函數中做了分配(這可以避免Frecklefoot提到的問題,因爲每家酒店將分配其資源,您忘記了)。 – Borgleader
謝謝@Frecklefoot:D –