私のプログラムには構造があります
struct List
{
int data;
List *next;
};
リストの末尾に要素を追加する機能:
void addL(List* &tail, int dat)
{
if (tail==NULL)
{
tail = new List;
tail->data = dat;
tail->next=NULL;
}
else
{
tail->next = new List;
tail = tail->next;
tail->data = dat;
tail->next = NULL;
}
}
gdbは問題について述べています
terminate called after throwing an instance of 'St9bad_alloc'
what(): std::bad_alloc
Program received signal SIGABRT, Aborted.
0xb7fdd424 in __kernel_vsyscall ()
列をなして
tail->next = new List;
次のようなList型の別の変数を作成しようとしました。
List* add;
add = new List;
しかし、2行目でも同じ問題が発生しました。
これを正しく書き直す方法は?そして、addLを呼び出す関数をここに貼り付ける必要はありますか?申し訳ありませんが、この質問がすでに行われている場合は、それらを調べている間、私は理解できませんでした。