可能重复:
strtok giving Segmentation Fault
为什么我要使用这个代码来获取分段错误呢?
void test(char *data)
{
char *pch;
pch = strtok(data, " ,.-"); // segfault
while (pch != NULL)
{
printf("%s\n", pch);
pch = strtok(NULL, " ,.-");
}
return NULL;
}
char *data = "- This, a sample string.";
test(data);发布于 2011-08-17 22:19:08
strtok()修改原始字符串。您将传递给它一个不能修改的常量源字符串。
试一试:
char *data = strdup("- This, a sample string.");
test(data);发布于 2011-08-17 22:18:37
strtok修改字符串。您正在传递一个指向只读数据(字符串常量)的指针.
尝试使用char数组。
char data[] ="- This, is a sample string."
test(data);https://stackoverflow.com/questions/7100214
复制相似问题