インデックス19の最後の値まですべてが正常に機能します。実際には、すべての値が出力されます。最終値&のインデックスを出力すると、フォールトが発生します。私はこれが20番目の値にアクセスしようとしているからだと仮定しています。これを防ぐにはどうすればいいですか?Forループ上のC++セグメンテーションフォルト
メインファイルCODE:
int index = 0;
while (index < list.length())
{
cout << list.getNextItem(index) << " " << index << "\n";
index++;
}
ヘッダコード:
template <class Type>
Type doublyLinkedList<Type>::getNextItem(const Type& val) const
{
nodeType<Type> *current; //pointer to traverse the list
current = first; //set current to point to the first node
for (index=0; index < val; index++)
{
if (current != NULL)
{
current = current->next;
}
}
return current->info;
}//end getNextItem
これは非常に奇妙な実装です。 'getNextItem'で' index'はどこで初期化されていますか?なぜリストは貧しい人のベクトルのように横断されていますか? –
また、マジックナンバー19と20はどこから来たのですか? –