>>444
at main ():
struct digitへのポインタだけ作って、実体が宣言されてないんだが。
head_a->next = head_a->prev = head_a;
でコケるぞ。

で、ロジックも何がしたいのか良く分からん。
head_aが二つ前の要素、head_bが一つ前の要素、head_tが現在の要素のように
見えるんだが、add()では全然そのような計算をしていない。