c中的分段错误strcmp
Segmentation fault strcmp in c
我正在尝试 运行 一个 c 语言的程序,该程序从用户那里获取文本文件和字符串,然后在文件中搜索该字符串。它不断出现分段错误,gdb 将我指向此函数,但我不确定问题出在哪里。我很确定它与 strcmp
调用有关,但我不确定。非常感谢对此问题的任何帮助。
int inTable( const char *s )
{
int i;
for( i=0; i<numLines; ++i )
{
if( strcmp( st[i], s ) == 0 )
return 1;
}
return 0;
}
我认为你应该检查 s:
int inTable(const char *s)
{
if (s == NULL)
{
return 0;
}
// invoke strcmp
}
确保 const char *s 以 '\0
结尾
你应该检查你是否正确使用了strcmp()
,API是:
int strcmp(const char *str1, const char *str2)
你必须:
1) 验证 st[i]
,你的第一个参数是一个指针。
2) 确保 st[i]
& s
有 Null 终止符 '\0'。
3) 在调用 strcmp()
.
之前检查 st[i]
& s
指向内存中分配的位置
我正在尝试 运行 一个 c 语言的程序,该程序从用户那里获取文本文件和字符串,然后在文件中搜索该字符串。它不断出现分段错误,gdb 将我指向此函数,但我不确定问题出在哪里。我很确定它与 strcmp
调用有关,但我不确定。非常感谢对此问题的任何帮助。
int inTable( const char *s )
{
int i;
for( i=0; i<numLines; ++i )
{
if( strcmp( st[i], s ) == 0 )
return 1;
}
return 0;
}
我认为你应该检查 s:
int inTable(const char *s)
{
if (s == NULL)
{
return 0;
}
// invoke strcmp
}
确保 const char *s 以 '\0
结尾你应该检查你是否正确使用了strcmp()
,API是:
int strcmp(const char *str1, const char *str2)
你必须:
1) 验证 st[i]
,你的第一个参数是一个指针。
2) 确保 st[i]
& s
有 Null 终止符 '\0'。
3) 在调用 strcmp()
.
st[i]
& s
指向内存中分配的位置