私はこのホテル[SomeIndex] .reservations [AnotherIndex] .nameのようなReservation構造体の変数名にアクセスしようとしていますが、機能しません。配列へのアクセス方法配列の内部構造C++の構造体?
どのように構造を埋めるためにこれらの変数にアクセスできますか?
PS:コンパイルされますが、デバッガのセグメンテーションフォルトに表示されます。
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;
}
あなたの問題は( 'メインの3行目であるように見えます)'あなたはそれを逆参照することなく予約を割り当てます。 10 'Reservation'構造体を割り当てる' hotel'を指定し、割り当てられていない 'hotel [9] .reservations [5]'にアクセスします。 – Frecklefoot
また、std :: vector(またはstd :: arrayは固定サイズを使用しているようですので)を使用するべきですが、少なくとも構造体のコンストラクタで割り当てを行います(これはFrecklefootの問題を回避します)。各ホテルはそのリソースを割り当てていましたが、これは忘れてしまったものです)。 – Borgleader
ありがとう@Frecklefoot:D –