struct bodyStr body[20];


do{
body[i]=readbody(num);
}while(body[i++].a);

if(argc-1){
writebody(body[(argv[1])-1]);}
else
for(j=0; j<i-1; j++)
writebody(body[j]);

指摘個所をこのように変えてみました。
dataを破棄しました。これを実行したら、PC自体がフリーズしてしまいました、