【发布时间】:2014-02-05 16:36:04
【问题描述】:
我正在制作一个程序来测试字符串在字符串数组中是否存在。为此我做了一个简单的函数:
bool isMemberOfArrayStr(std::string str, std::string array[256]){
for(int i=0;array->length()<10;i++){
if(array[i]==str){
ret=true;//A global variable that will be reset to false after the function call
}
}
return ret;
}
函数的定义没有错误,但是调用:
if(neighbors[2] == isMemberOfArrayStr(neighbors[2], validTokens))
{
std::cout <<"true"
}
导致运行时错误“分段错误:11”。 我不确定是什么问题,如果有帮助会很好。
【问题讨论】:
-
我建议您在代码中包含
using namespace std;,以不断避免std::。 -
@Vkt0rS。从不建议这样做。
using namespace stdis a bad programming practice. -
@0x499602D2 - 头文件是不好的做法,但在 .cpp 中还不错
-
neighbors[2]是一个std::string(因为它可以作为第一个参数传递给isMemberOfArrayStr。为什么还要检查neighbors[2] == isMemberOfArrayStr(neighbors[2], validTokens)。本质上是比较std::string == bool。跨度> -
好评@0x499602D@
标签: c++ function crash segmentation-fault runtime-error