Duda al inicializar estructuras

ercarrion43
26 de Abril del 2010
Hola, estoy aprendiendo a programar en C y me ha surgido una duda.

Defino una estructura y creo una instancia:

struct vector{
int x;
int y;
} vect1;

Es normal que no me deje inicializar ninguno de sus miembros fuera de la funcion main, es decir, este codigo me da error:

vect1.x = 12;

int main ()
.
.
.
y este no

int main ()
{
vect1.x = 12;

Y otra cosa, ¿solo puedes inicializar todos los miembros de la estructura mientras declaras la instacia?, es decir, ¿esto no es correcto en ningun caso?

estruct vector vect2;
vect2 = {12, 14};

A ver si alguien puede echarme una mano, por cierto, un saludo a todos los miembros del foro.

Capitan Kirk
26 de Abril del 2010
Prueba con esto:

// Declara la estructura
struct Vector
{
int x;
int y;
};

// Estructura inicializada en la declaración
struct Vector MiVector = { 7, 8 };

void main(void)
{
printf("MiVector.x=%d, MiVector.y=%d", MiVector.x, MiVector.y);

Tendrá que imprimir:

MiVector.x=7, MiVector.y=8

Saludos,