Я пытаюсь изменить переменную в объекте struct. Но каждый раз, когда я меняю его, меняются и другие объекты.
Вот моя структура
struct room{
char * S;
char * N;
char * W;
char * E;
char South;
char North;
char West;
char East;
char * Name;
};
и вот блок, который я запускал в основном методе
int numOfRooms=0;
struct room * rooms;
rooms=(struct room*)malloc(sizeof(*rooms));
do{
rooms=(struct room*)realloc(rooms,sizeof(*rooms)*(numOfRooms+1));
fscanf(fp,"%s%c",name,&temp);
printf("%s ",name);
printf("%d",numOfRooms);
rooms[numOfRooms].Name=name;
printf("%s ",rooms[0].Name);
numOfRooms++;
}while(temp!='\n');
и вывод: START 0START FOYER 1FOYER ELEVATOR 2ELEVATOR
что должно быть: НАЧАТЬ 0 НАЧАТЬ Фойе 1 НАЧАТЬ ЛИФТ 2 НАЧАТЬ
это моя проблема. Каждый раз, когда я пытаюсь изменить Name
в моей структуре, меняются и имена предыдущих.
имя было объявлено
char string[20];
char defa[16]="No Path This Way";
char temp;
char * input;
char * name=string;