Структуры в Си (Xcode). Не могу присвоить значения полям структуры. В чем проблема?
Не понятно в чем заключается проблема. Не могу присвоить полям структуры значения. Пробовал и так, и эдак. Не выходит... Такая проста штука вроде бы, но что-то я упускаю, Xcode ругается.
#include <stdio.h>
typedef struct
{
char name[50]; // Имя
char surname[50]; // Фамилия
char patronymic[50]; // Отчество
} FCs;
typedef struct
{
char street[100]; // Улица
int house; // Дом
int apartament; // Квартира
} Adress;
typedef struct
{
int bYear; // Год рождения
Adress adr; // Структура адреса
FCs fcs; // Структура ФИО
} General;
General j = {1999, {"Proletarskaya"}, 100, 1, {"Ivan"}, {"Ivanov"}, {"Ivanovich"} }; // Не получается
j.adr = {"Proletarskaya", 100, 1}; // Так тоже не выходит
int main()
{
return 0;
}
Ответы (2 шт):
Автор решения: bulka_s_makom
→ Ссылка
Моя проблема была решена путем удаления лишних скобочек в литералах. Странно, ведь я пробовал удалять их, но ничего не выходило. Магия, чистая магия. ?
Автор решения: AlexGlebe
→ Ссылка
В первом случае нужно фигурные скобки ставить правильно. Во втором : команды могут находится только в теле функции. Справа после присвоения в фигурных скобках вы создаёте временную структуру и потом её присваиваете полю j.adr. Этой временной структуре нужно указывать её тип в скобках.
General j = {1999, {"Proletarskaya", 100, 1}, {"Ivan", "Ivanov", "Ivanovich"} };
int main()
{
j.adr = (Adress){"Proletarskaya", 100, 1};
return 0;
}
