Я столкнулся с проблемой, когда моему массиву структур не присваивалось значение, когда я назначал им значение в функции.Вот объявления структуры:
typedef struct{
int length;
int width;
char texture;
int xpos;
int ypos;
}prop_info;
typedef struct{
int init_xpos;
int init_ypos;
int index;
prop_info prop[100];
}room_info;
А вот и функции:
void info_setup(room_info room,int init_xpos,int init_ypos,int index)
{
room.init_xpos=init_xpos;
room.init_ypos=init_ypos;
room.index=index;
}
void prop_setup(room_info room,int prop_index,int length,int width,char texture,int xpos,int ypos)
{
room.prop[prop_index].length=length;
room.prop[prop_index].width=width;
room.prop[prop_index].texture=texture;
room.prop[prop_index].xpos=xpos;
room.prop[prop_index].ypos=ypos;
}
room_info room_lobby;
void init_rooms()
{
info_setup(room_lobby,0,0,0);
prop_setup(room_lobby,0,1,1,'X',5,5);
}
И когда я использую функцию "init_rooms ()" в основной функции:
int main()
{
init_rooms();
printf("%d",room_lobby.prop[0].xpos);
}
printf выводит только 0, и если я попытаюсь распечатать "room_lobby.prop [0] .texture", который является символом, он будет печатать пробел только тогда, когда должен печатать X. Спасибозаранее!