我或多或少有一个想法,但我不确定我是否有正确的想法,我希望也许我只是错过了一些明显的东西。基本上,我有一个字符串数组(C字符串,所以基本上是一个指向字符数组的指针数组),如下所示:
char **words;
我不知道我最后会说多少字。当我解析字符串时,我希望能够调整数组的大小,添加一个指向单词的指针,然后移动到下一个单词然后重复。
我能想到的唯一方法可能是每次我到达数组末尾时都从一个合理的数字开始并重新分配,但我不完全确定这是否有效。就像我希望能够访问 words[0]、words[1] 等。如果我有 char **words[10] 并调用
realloc(words, n+4) //assuming this is correct since pointers are 4 bytes
一旦我到达数组的末尾,如果我做了 words[11] = new word,那是否有效?