whileループを使用して二重リンクリストに要素を追加しようとしています。ノードは作成されていますが、それらはすべて同じ単語を格納しています。これは私が読んでいるファイルの最後の単語です。ここではwhileループです:二重リンクリストに要素を追加する
while(fscanf(text, "%s", word) == 1)
{
struct node *temp;
temp = new_node(word); //Creates a new node
temp->prev = cursor; //Cursor represents current position in linked list
temp->next = NULL;
cursor->next = temp;
cursor = temp;
}
カーソルは、whileループの開始前にリストの先頭に初期化されます。
そして、ここに私のノード構造体である:
struct node
{
struct node* prev;
struct word_entry* data;
struct node* next;
};
私のwhileループと間違っていますか?以前のノードを上書きし続けるのはなぜですか?お願いしてありがとう!
バグが 'new_nodeで、おそらくです:ノードへの割り当て中
あなたは、ノードごとに別々の単語のストレージを割り当て、そのストレージに単語をコピーする必要があります() 'あなたが私たちを示していない。 –
'temp = new_node(word);' - > 'temp = new_node(strdup(word));' – BLUEPIXY