for (i = (routeVector.size () - 1); i >= 0; i--)
{
cout << "Connected to -> " << routeVector[i].exitPoint;
for (j = (routeVector.size () - 1); j >= 0; j--)
{
if (routeVector[i].selectedBranchesVector.size() > 0)
{
cout << "\n: routeVector[i].selectedBranchesVector[0].connectedExitPoint" <<
routeVector[i].selectedBranchesVector[0].connectedExitPoint;
******cout << "\nrouteVector[j].exitPoint:" << routeVector[j].exitPoint;
if (routeVector[i].selectedBranchesVector[0].connectedExitPoint == routeVector[j].exitPoint)
{
cout << "Connected to -> " << routeVector[i].selectedBranchesVector[0].connectedExitPoint;
}
}
}
}
盯着的线给我一个段错误,我不明白为什么。
如果“routeVector”在“selectedBranchesVector”中什么都没有,它甚至不会到达里面if。
上述问题的原因可能是什么?
编辑 1:
为了让问题更清楚,我打印了语句的两个条件,错误显示在凝视的行上。
结构是:
typedef struct branch
{
unsigned int distance;
int connectedExitPoint;
} branch;
typedef struct route
{
int exitPoint;
vector <branch> selectedBranchesVector;
} route;
vector <route> routeVector;
最佳答案
这取决于 i
和 j
的类型 - 如果 i
和 j
是 unsigned
,上面的循环会非常愉快地循环回来——这可能是正在发生的事情——打印索引,你会看到……
关于c++ - 逻辑错误 : Unable to determine the cause of segmentation fault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6730943/