循環的な二重リンクリストを実装しようとしていますが、セグメンテーションフォルトが継続しています:11エラー(これは追加機能と削除機能によるものだと思います。私のコードが近いのかどうかはわかりませんが、正しくテストするためにこのエラーを越えることはできません。これは私が私が関与していると信じていることを持っているコードです:すべてのヘルプは、おかげで素晴らしいだろう円二重リンクリスト - セグメンテーションフォールト:11
(Circular_DLList.cc)
void Circular_DLList::add_to_tail(int a)
{
if (is_empty()) {
tail = new DLLNode(a);
tail->next = tail;
}
else {
tail->next = new DLLNode(a, tail->next);
}
}
int Circular_DLList::delete_from_tail()
{
if(!is_empty())
{
int a = tail->info;
tail = tail->prev;
tail->next = null;
return a;
}
else
{
tail = 0;
}
return a;
}
。
クラッシュ(セグメンテーション・フォルトなど)が発生した場合は、デバッガを実行して「動作中」のクラッシュをキャッチする必要があります。これにより、デバッガはクラッシュの場所で停止し、変数の値と関数呼び出しスタックを調べることができます。デバッガがコードで停止しない場合は、コードに達するまで呼び出しスタックを上げます。 –
'p->!= tail'はコンパイルされませんので、実際のコードを投稿してください。 –
投稿のガイドラインに従って、最小限の例を抽出してください。それはあなたが問題に集中するのを助けるはずです。つまり、あなたはいわゆる3つの法則(またはC++ 11の5つの法則)を破ってしまったと言いました。 –