【发布时间】:2014-04-24 10:25:54
【问题描述】:
我的 C 程序有问题。
我知道strchr() 导致了问题,并且它正在返回
分段错误
我的代码如下:
char *pointer;
pointer = strchr(string, character);
我不知道为什么会收到错误消息。 我能猜到的一件事是我的“字符串”有时不包含字符。这可能是原因吗?
由于我无法控制输入字符串,我该如何阻止它?
完整代码
int index(const char *string, char character)
{
const char *pointer;
pointer = strchr(string, character);
if(pointer)
return (pointer - string);
else
return -1;
}
【问题讨论】:
-
string肯定 null 终止了吗? -
你在
strchr之后检查pinter和NULL吗? -
你能展示你剩下的代码吗?你可以误用 strchr ....
-
这个函数看起来没问题,问题可能出在调用者身上。也许它没有正确分配字符串。
-
@Jordan 是的,这就是原因。当字符串为空时
strchr()不起作用。