我有以下代码:

#include <string.h>

int main(void) {
    char *buffer = NULL, **words = NULL, *aPtr = NULL, *sPtr;
    int count = 0;

    buffer = strdup("The quick brown fox jumps over the lazy dog");
    sPtr = buffer;

    do {
        aPtr = strsep(&sPtr, " ");

        words[count++] = ... // missing code
    } while(aPtr);

    return 0;
}

我丢失了一些代码,正如你在上面看到的有什么strdup()可以解决这种情况吗strdup()函数本身似乎不起作用如果没有,我如何才能使这段代码工作?
指针的指针让我头疼。。。

最佳答案

到目前为止,您还没有分配words[0]words[1]所以使用strdup没有帮助。
更糟糕的是,你事先不知道会有多少个单词,所以你需要的空间并不小。
一个选项是用链表或动态数组替换malloc

关于c - 在C中将strsep()与字符串的动态数组一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/908759/

10-11 19:34