Вам не нужны двойные скобки, когда вы используете двойные скобки.Правильный инициализатор для типа структуры:
struct Address
{
int streetNumber;
char streetName[41];
int apartmentNumber;
char postalCode[8];
char city[41];
};
будет:
struct Address addr1 =
{
319, // Street number
"Honeydew Road", // Street name
207, // Apartment number
"RG13 2PQ", // Postal code
"Reading" // City
};
Используя C99 и назначенные инициализаторы, вы можете использовать:
struct Address addr2 =
{
.apartmentNumber = 0,
.streetNumber = 719,
.streetName = "Persimmon Way",
.city = "London",
.postalCode = "EC1A 3JN",
};
Обратите внимание, чтос указанными инициализаторами порядок не критичен.
Если вы настаиваете на использовании двойных скобок, обратите внимание, что вы можете заключить инициализатор для регулярных скалярных переменных в скобки (или нет):
int i1 = 0; // Legitimate
int i2 = { 0 }; // Also legitimate
Однако в инициализаторе структуры нельзя использовать фигурные скобки вокруг скаляров, но можно использовать массивы:
struct Address addy = { 0, { "" }, 0, { "" }, { "" } };
Попытка заключить в фигурные скобки либо 0
приводит к ошибкам компиляции.