Во-первых:
Вы используете указатель NULL и присваиваете ему значения в функции 'getHouse'. Это неопределенное поведение и должно привести к нарушению прав доступа.
Кроме того, вы возвращаете объект House по значению из getHouse и пытаетесь назначить тип указателя. Указатель и значение - это две разные вещи.
Вам вообще не нужны указатели, если вы не хотите динамически размещать свои Дома в куче.
House getHouse()
{
House myHouse;
char c = getchar();
myHouse.id = 0;
myHouse.name = c; /*only single char for house name*/
return myHouse
}
int main()
{
House aHouse;
aHouse = getHouse();
}
РЕДАКТИРОВАТЬ: ради эффективности, вы можете реализовать это так:
void getHouse(House* h)
{
char c = getchar();
h->id = 0;
h->name = c; /*only single char for house name*/
}
int main()
{
House aHouse;
getHouse(&aHouse);
}
ИЗМЕНИТЬ еще раз:
Также в структуре Дома, поскольку имя может быть только одним символом, не используйте символ * для имени, просто используйте символ.