2014-11-02 5 views

ответ

4

Вы не можете назначать списки инициализаций уже определенным объектам.

b[0] = {"Maharshi", 5}; 
b[1] = {"Hello", 6}; 

Но вы могли бы сделать то, что вы хотите с помощью составных литералов:

b[0] = (struct test){ "Maharshi", 5 }; 
b[1] = (struct test){ "Hello", 6 }; 

Или использовать списки инициализатора, когда массив определяется.

1

Вы не можете использовать инициализацию списка, когда структура уже объявлена! Вы могли бы использовать его как это:

int main() { 
    struct test{ 
      char a[100]; 
      int g; 
    }b[2] = 
    {{"Maharshi", 5}, 
    {"Hello", 6}}; 

    printf("%u %u", b[0].g, b[1].g); 

    return 0; 
} 

(. Обратите внимание, что внутренние брекеты optionnal)