ファイルを取り込み、それを構造体として格納し、
numの大小によってそれらを入れ換えるプログラムを書きたいのですが、
どうやってもセグメントエラーになってしまいます。

同じ型で二つの構造体変数を宣言していて、
ひとつの構造体変数同士の入れ換え(例 a[1]=a[2];)は問題なく動いているようなのですが、
別々の変数で入れ換えを行っているとき(例 b=a[1];)でエラーが返されているようです。
どうすれば正しく動くようになりますでしょうか?