c - 为什么下面的 C 程序会报总线错误?

标签 c strtok bus-error

我认为这是第一个失败的 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/

相关文章:

c - 在 Xcode 中找不到 Getch 和 getche

CPU 运行速度比 GPU 快(OpenCL 代码)

c - 在 C 中使用 strtok 为结构体赋值

c - 在 C 中使用 strtok 解析文件

C - strtok 和 strcmp

c++ - 我在以下代码中收到总线错误

linux - 写入共享内存时出现总线错误

c - 总线错误 : 10 in C while inputing text from . txt 文件进入节点

c++ - 使用 MPI 进行并行编程以使用动态二维数组进行矩阵乘法时如何解决问题?

c - 欧拉计划没有。 16