ファイルからバイナリツリーに単語を挿入しようとしています。挿入機能は、fscanfの後にすべての読み取り文字列を印刷しようとしたときにもファイルを読み取らないときに機能しますそれも動作しますが、ツリーに挿入しようとすると、ファイルの最後の文字列だけが読み込まれます。なぜこれが起こりますか?ファイルから最後の単語だけを読み取るFscanf
while(1){
if(fscanf(f,"%s %d",string,&x)==EOF)
break;
tree=insert(tree,string,x);
}
挿入する前に 'string'のコピーを作成していません。 'insert'関数はポインタを保存するだけで、すべてのツリーエントリは同じ文字列を指しています。 – Barmar
バグを示す完全なサンプルプログラムを提供して、残りのコードがどのように見えるのか推測しないようにしてください。 –