我认为这是第一个失败的 strtok 调用。好久没写C了,手足无措。非常感谢。
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
char *str = "one|two|three";
char *tok = strtok(str, "|");
while (tok != NULL) {
printf("%s\n", tok);
tok = strtok(NULL, "|");
}
return 0;
}
最佳答案
字符串文字应分配给 const char*,因为修改它们是未定义的行为。我很确定 strtok 修改了它的参数,这将解释您看到的不好的事情。
关于c - 为什么下面的 C 程序会报总线错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480552/