我有一个程序可以计算文本文件中出现的单词并将它们存储在数组中。到目前为止,我使用的是固定数组,一切正常,但现在我想将其更改为动态数组,这样就不会浪费/需要任何内存。我知道必须使用 malloc 和 realloc 来完成此操作,但我真的不明白如何去做。
我的第一个想法是简单地计算文本文件中的单词,然后为所有这些单词分配足够的空间,但这会浪费空间,因为重复的单词会增加一个计数器,但不会再次添加到数组中。
这种方法听起来是否有意义并且是实现它的最佳方法?如果我首先 malloc 一个小数组,就足以找到一个单词及其计数器。然后,每次我找到一个需要添加到数组中的新单词时,只需 realloc 足以容纳另一个单词和计数器。如果它是重复的,则不需要 realloc,因为现有计数器只会增加。