我有以下代码:
#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/