파일의 단어를 이진 트리에 삽입하려고합니다. 삽입 기능은 fscanf 이후에 모든 읽기 문자열을 인쇄하려고 할 때 파일을 읽지 않을 때 작동합니다 그것도 작동하지만 트리에 삽입하려고하면 파일의 마지막 문자열 만 읽습니다. 왜 이런 일이 발생합니까?파일에서 마지막 단어 만 읽는 Fscanf
while(1){
if(fscanf(f,"%s %d",string,&x)==EOF)
break;
tree=insert(tree,string,x);
}
삽입하기 전에'string'의 사본을 만들지 않습니다. 'insert' 함수는 단지 포인터를 저장하는 것이고, 모든 트리 엔트리는 같은 문자열을 가리 킵니다. – Barmar
코드의 나머지 부분을 추측하지 못하도록 버그를 보여주는 완벽한 예제 프로그램을 제공하십시오. –