Функция getchar()
в этом случае будет необходима, только если вы сделаете следующий ввод после названия отеля, в этом случае я бы порекомендовал вам просто добавить пробел перед% s, что-то вроде этого scanf(" %[^\n]s", new_h->name);
.
Что касается malloc()
как ваше определение отеля, потому что оно должно быть объявлено как указатель, так что вы можете выделить ему память, приведение его к типу указатель недостаточно, и это приведет кдля segfault вы должны объявить его как
Hotel *new_h = malloc(sizeof(Hotel));
Это означает, что вы определяете отель как нечто подобное
typedef struct{
//Some vars
}Hotel;