基本的な要点は、テキスト ファイルから単語を読み取り、それらを文字列として格納し、関数を実行してから、これを複数回ループして、新しい行を読み取るたびにその文字列を書き換えることです。このループが完了したら、別の文字列を処理する必要があります。問題は、宣言時に 0 に memset したにもかかわらず、2 番目の文字列のバイトが、最初の文字列に割り当てたスペースよりも長い単語の余分な文字によって上書きされることです。
char* currDictWord = malloc(9*(sizeof(char));
char* currBrutWord = malloc(9*(sizeof(char));
memset(currBrutWord, 0, 9);
memset(currDictWord, 0, 9);
...
while (stuff) {
fscanf(dictionary, "%s", currDictWord);
}
...
printf("word: %s\n", currBrutWord);
currBrutWord はもう空ではありません。私がこれに対処した 2 つの方法は、currDictWord が辞書ファイル内の最長の単語よりも長いことを確認すること (一種のゲットー ソリューション) と、ループの後に currBrutWord で新しい memset を実行することです。別の変数に特別に割り当てたメモリへの書き込みを停止するように C に指示する方法はありませんか?