[英]Segmentation fault while trying to print size of a vector inside a structure
这段代码给我一个错误
struct state{
int time_taken;
vector<int>time_live;
string loc_name;
vector<int>loc;
};
for(int u=0;u<(A[start].loc.size());u++)
{
l=A[start].loc[1];
if(A[l].time_taken < min_time)
{
min_time=A[l].time_taken;
finish = l;
}
}
这给出了分段错误。
首先,如果A[start]
超出范围,则可能会遇到问题,取决于A
是什么,这可能是段错误也可能不是段错误。
其次,在循环中,您有A[start].loc[1]
,如果A[start].loc
为空,它将超出范围。 你是说loc[u]
吗?
从上面的代码。
在for循环之前,请确保
start < A.size();
内循环
l = A[start].loc[u]; // instead of 1
和之前
if(A[l].time_taken < min_time)
check
if (l < A.size())
我喜欢安东尼·威廉姆斯的第一点,但我猜想A[l]
超出范围。
也许您可以尝试使用A.at(start)访问A,如果它超出了范围,它现在将抛出异常,而不是段隔离
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.