[英]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.