Инициализация структуры заключается в присваивании начальных значений элементам структуры. Структуры могут быть проинициализированы при их объявлении.
Инициализирующая запись - это заключенный в фигурные скобки список, элементы которого разделяются запятыми и являются константами. Любые неинициализированные элементы внешних или статических структур по умолчанию равны 0. Значения неинициализированных элементов автоматических структур неопределены.
Пример 1
struct course {
              char name[30];
              int  number;
              char nickname[30];
              } title = {"C for new programmers",
                          1633,
                         "TRR YYY"};
struct mailinfo {
                char name[25];
                char mailadr[30];
                } proj_member [] = {
                    {"Ivanov Oleg", "rz3bb@imr"},
                    {"Klimov Alex", "rz3bb@ha"},
                    {"Petrova Elena", "rz3bb@wij"},
                    { "", ""}
                };
int f (void)
{
static struct mailinfo admin =
              {"Administrator", "root"};
...
}
В качестве признака окончания массива часто используется "нулевая" запись, поэтому зачастую используют циклы подобные прим. 2. Цикл будет выполняться до тех пор, пока первый символ поля name структуры, на которую указывает указатель p, не равен '\0'.
Пример 2
for (p = proj_member; *p->name != '\0'; p++)
   printf ("%s %s \n", p->name, p->mail_addr);