FILE * stream= fopen(room_file, "r");
if (stream==NULL){
return NULL;
}
while(!feof(stream)){
fscanf(stream, "%s %d %d",building,&roomNumber,&size);
if(fgets(multimedia, WORD_LEN, stream)==NULL){
break;
}
if(strcmp(multimedia, "N")==0){
mm=false;
}
else{
mm=true;
}
Room newRoom=roomCreate(building, roomNumber, size, mm);
Node newNode=createNode(newRoom);
addToRoomsList(sysList, newNode);
}
Здесь я пытаюсь создать комнаты с полями building, roomNumber, size, mm и во второй итерации цикла while значения в newRoom-> building, ..., newRoom-> mm изменяются в результате scanf
Room roomCreate (char *building_name, int number, int size, bool mm)
{
assert(building_name!=NULL);
if (size<=0 || size>=1000 || number<=0 || number>=10000){
return NULL;
}
Room newRoom= malloc(sizeof(*newRoom));
newRoom->building_name=building_name;
newRoom->multi_media=mm;
newRoom->size=size;
newRoom->number=number;
newRoom->orders=NULL;
return newRoom;
}
-функция, которая создает комнату, но я думаю, проблема не в этом, просто в дополнительных деталях