有一個在我的程序計劃,中止
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* add;
add = new List;
但在第二行有同樣的問題。
如何正確重寫?是否需要在這裏粘貼調用addL的函數? 對不起,如果這個問題已經被問到,我無法理解,而通過他們看。
我們不知道你做錯了什麼。你的[testcase](http://sscce.org)在哪裏? – 2015-04-05 17:26:07