ドット演算子とアロー演算子は構造体のメンバーを表すという機能はほとんど同じですが、使う上では違いがあります。
ドットは実体に、アローはポインタにつける
例えばlistという構造体があったとします。
struct list { int key; struct list *next; };
この構造体から構造変数を作ります。
struct list *new; (ポインタ変数として)
struct list tmp; (構造体変数として)
この場合、newは構造体へのポインタを持ち、temは変数の実体を持っています。
従って、メンバー関数の呼び出しは前者がアロー演算子、後者がドット演算子を使います。