7.9 Punteros y estructuras


Un puntero puede apuntar a una estructura y acceder a sus campos:

struct Dato
{
  int campo1, campo2;
  char campo3 [30];
};

struct Dato x;
struct Dato *ptr;
...
ptr = &x;
(*ptr).campo1 = 33;
strcpy ( (*ptr).campo3, "hola" );

El operador ->


Para hacer menos incómodo el trabajo con punteros a estructuras, el C tiene el operador flecha -> que se utiliza de esta forma:

ptr->campo

que es equivalente a escribir

(*ptr).campo

Así, el ejemplo anterior quedaría de esta forma:

ptr = &x;
ptr->campo1 = 33;
strcpy ( ptr->campo3, "hola" );