まず、ソートの機能をつけず1単語ずつ格納し表示するプログラムを作ってみたのですが
これをcygwinで実行すると、読み込んだファイルの先頭の1単語だけ表示された後
「a.exeは動作を停止しました
問題が発生したため、プログラムは正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合はwindowsから通知されます。」
と表示され強制終了します。
原因がまったくわからず困っています。
解決策を教えてください。お願いします。
また、正常になったとしてその後、どうやってソート機能を加えたらいいかのアドバイスもしていただけると助かります。
よろしくお願いします。
以下がプログラムとファイル内容です。
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
struct LIST { //リスト構造用構造体
struct LIST *next;
struct LIST *back;
char word[];
};
struct LIST start;//リストの1番目
int main(void)
{
start.next=&start;
start.back=&start;
FILE *fp;
fp=stdin;
while(feof(fp)==0){
struct LIST *box;
struct LIST *next;
struct LIST *prev;
box=(struct LIST*)malloc(sizeof(struct LIST));
fgets(box->word,10,fp);
box->next=&start;
prev=&start;
for(next=start.next;next!=&start;next=next->next){
prev=next;
}
prev->next=box;
box->back=prev;
}
//表示
struct LIST *display;
for(display=start.next;display!=&start;display=display->next){
printf("%s",display->word);
}
return 0;
}
apple
knight
dream
erath