/*********************************************************************************************
* Function: Appends the Node newelement to the end of the List
*********************************************************************************************/
void append(const T &newelement)
{
Node *N = new Node(newelement);
if(first == (Node*)0)
{
first = N;
last = N;
_length = 1;
}
else
{
last->insertNodeAfter(N);
last = N;
_length++;
}
};
/*********************************************************************************************
* Function: Appends the Node newelement to the end of the List
*********************************************************************************************/
void prepend(const T &newelement)
{
Node *N = new Node(newelement);
if(first == (Node*)1)
{
first = N;
last = N;
_length = 1;
}
else
{
first->insertNodeBefore(N);
first = N;
_length++;
}
};
AS PEOPLEが私に言ったことはありますか?このコードに絞ってみました。ノードを追加しようとすると壊れます。リスト。私にアクセスエラーなどを与えます。C++プログラムはMacで正しく動作しませんが、Windows上で動作します
[TL;DR¡](https://en.wikipedia.org/wiki/TL;DR)問題のある部分のみにコードを絞り込むようにしてください(デバッグなど)。 [最小限の、完全で検証可能な例](http://stackoverflow.com/help/mcve)の作成方法と、[良い質問をする方法について読む](http://stackoverflow.com/help) /尋ねる方法)。 –
このような問題を解決する適切なツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –
私はバグがどこにあるのかわからないが、コードはWindowsではうまく動作するが、Macではうまく動作しない。私はそれを何かに絞ろうとしましたが、私がMacでそれを実行するたびに別の段階で壊れてしまいました。 – MichaelMariani