【发布时间】:2017-11-02 14:11:38
【问题描述】:
当我在下一个代码部分使用 strtok 时,我正在转储分段错误核心。代码正在调试,但是当我运行它时,我得到了分段错误。我该如何解决?
struct{ char *name;
void(*func)(void);
}cmd[]={
{"read_cm",read_cm},
{"NA",NULL}
};
int d;
char *s="_\n";
char *token2;
for(d=0;cmd[d].func!=NULL;d++)
{
token2=strtok((cmd[d].name),s);
}
【问题讨论】:
-
欢迎来到 Stack Overflow! 寻求调试帮助的问题(为什么这段代码不起作用?)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建minimal reproducible example。
-
当您创建Minimal, Complete, and Verifiable Example 时,请确保它确实编译。
-
请正确格式化您的代码。
-
另外,请使用调试器在代码中定位崩溃发生的位置,并在崩溃发生时检查所有相关变量的值。确保它们是有效的。如果您仍然无法弄清楚,请在您的问题中包含所有这些信息。
-
cmd[d]name语法无效,您缺少.。
标签: c string segmentation-fault undefined-behavior string-literals