SVN имеет 3 основных преимущества перед CVS
Чтобы инициализировать все до 0 (правильного типа)
StructOuter myvar = {0};
Инициализировать элементы определенным значением
StructOuter myvar = {{0, NULL}, {0, NULL}, {0, NULL},
{0, NULL}, {0, NULL}, 42.0, "foo"};
/* that's {a, b, c, d, e, f, s} */
/* where each of a, b, c, d, e is {size, elems} */
Edit
Если у вас есть компилятор C99, вы также можете использовать «назначенные инициализаторы», например:
StructOuter myvar = {.c = {1000, NULL}, .f = 42.0, .s = "foo"};
/* c, f, and s initialized to specific values */
/* a, b, d, and e will be initialized to 0 (of the right kind) */
double a[] = { 1.0, 2.0 };
double b[] = { 1.0, 2.0, 3.0 };
StructOuter myvar = { { 2, a }, { 3, b }, { 2, a }, { 3, b }, { 2, a }, 1, "a" };
Кажется, что a и b не могут быть инициализированы на месте в обычном C