我正在刷新我对 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;
};
我猜“酒店”的动态声明有问题。我哪里出错了?