C++ の動的メモリ割り当てと構造体に関する知識を更新していて、突然トラブルに遭遇しました。以下はコードの一部で、3 行目以降で実行が停止し、プログラムが終了します。
int n;
std::cout << "How many hotels do you want : ";
std::cin >> n;
hotel* hotels= new (nothrow) hotel[n];
for (int i= 0; i< n; i++) {
std::cout << "Hotel " << i+1 << " name : ";
std::cin >> hotels[i].name;
std::cout << "Hotel " << i+1 << " rating : ";
std::cin >> hotels[i].rating;
std::cout << "Hotel " << i+1 << " stars : ";
std::cin >> hotels[i].stars;
}
「ホテル」宣言は次のとおりです。
struct hotel {
char* name;
short int rating, stars;
};
「ホテル」の動的宣言に何か問題があると思います。どこで間違ったのですか?