【发布时间】:2013-04-09 05:44:08
【问题描述】:
我正在尝试开发一个基本的外壳。对于那个 shell,我需要一个 C 函数来解析一个字符串。由于我是 C 新手,我尝试开发一个基本功能,但它给了我一个分段错误错误。请告诉我我错过了什么。
#include<string.h>
#include<stdio.h>
void parse(char *msg);
int main()
{
char *msg = "This is a message";
parse(msg);
}
void parse(char *msg){
char *mm;
mm = msg;
char *tok;
tok = strtok(mm," ");
while(tok == NULL){
tok = strtok(NULL," ");
printf("%s \n",tok);
}
}
错误消息(运行时)
Segmentation fault (core dumped)
提前致谢
【问题讨论】:
-
你们会问多少次同样的问题和而不是 RTFM?字符串字面量是常量,没有办法你可以修改它们的内容。
-
(出于完全相同的原因,
constchar *msg = "foo"; -
@H2CO3,也许是时候编辑 C 标记 wiki 类似问题以添加与 undefined behaviour 和 sockets 相关的问题,因为它们似乎被问得太多了?
-
@AnishRam 这是一个建设性的建议。 (不幸的是,提出这类问题的人也不倾向于阅读标签维基。)
-
@H2CO3,嗯。好点子。 (开始集思广益新功能请求:D)
标签: c segmentation-fault