struct A {
int i, j;
};void foo( struct A *p) {
*p = (struct A) { 1, 2}; // это ТОЧНО не инициализация :-)
}
Но для этого компилятор должен поддерживать стандарт С конца прошлого века (1999 года), что в конце 2007-го почему-то не так распространено, как хотелось бы. А в С99 есть вкусные вещи...