テキスト ファイル内の単語の出現回数をカウントし、それらを配列に格納するプログラムがあります。これまでのところ、固定配列を使用しており、すべて正常に動作していますが、それを動的配列に変更して、メモリが無駄になったり必要になったりすることがないようにしたいと考えています。これを達成するにはmallocとreallocを使用する必要があることは理解していますが、それを行う方法がよくわかりません。
私の最初のアイデアは、テキストファイル内の単語を単純に数えてから、それらすべてに十分なスペースをmallocすることでしたが、重複した単語はカウンターが増加するため、無駄なスペースが残りますが、配列に再度追加されることはありません。
このアプローチは理にかなっているように聞こえ、それを達成するための最良の方法でしょうか? 最初に、1 つの単語とそのカウンターを見つけるのに十分な小さな配列を malloc するとします。次に、配列に追加する必要がある新しい単語を見つけるたびに、別の単語とカウンターに収まるのに十分なだけ再割り当てします。それが重複している場合は、既存のカウンターがインクリメントされるだけなので、再割り当ては必要ありません。