Si no se entendio avisenme y les doy un ejemplo o algo.. bah, se los doy de todos modos jeje.
Supongamos q tenemos las siguientes estructuras
struct punto {
int x;
int y;
};
struct {
int x;
char * string;
struct punto pto;
} str, *ptr = &str;
Vemos que punto es una estructura comun y corriente que contiene dos enteros. Y str es una estructura que contiene un entero, un puntero a char, y una estructura de tipo punto. Al final de la definicion de str, creamos una estructura de este tipo, y un puntero a esta.
Entonces, si queremos acceder a los elementos de la estructura directamente, podemos hacer esto:
str.x = 30;
str.string = "Hola mundo";
str.pto.x = 2;
str.pto.y = 3;
Hasta aca no he dicho nada nuevo supongo. Ahora vamos a ver como accedemos a los elementos de la estructura a traves del puntero a apunta a esta:
ptr->x = 30;
ptr->str = "Hola mundo";
ptr->pto.x = 2;
ptr->pto.y = 3;
Vemos que en este caso, tenemos q usar el operador ->, que significa q vamos a acceder al contenido de la estructura a la cual apunta el puntero. Seria parecido al * cuando usamos punteros a variables.
Esto es muy util cuando tenemos q pasar a una funcion una estructura como parametro, simplemente pasamos un puntero a esta
Bueno, espero q se haya entendido mejor. Cualquier duda pregunten