可能重复:
为什么在写入字符串时会出现分段错误?
我的 C 代码遇到了一个奇怪的问题。我正在尝试使用 strtok 函数拆分字符串,但出现访问冲突异常。这是我的代码:
char *token;
char *line = "LINE TO BE SEPARATED";
char *search = " ";
token = strtok(line, search); <-- this code causes crash
但是,如果我更改char *line
为char line[]
,一切都会按预期进行,并且不会出现任何错误。
任何人都可以解释为什么我会用 strtok 得到这种(对我来说很奇怪)行为?我认为 char* 和 char[] 是相同且精确的类型。
更新
我正在使用 MSVC 2012 编译器。