[英]“glibc detected - free(): invalid pointer - Program received signal SIGABRT, Aborted”
[英]Program received signal SIGABRT, Aborted
我的程序中有一個結構
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;
但在第二行遇到了同樣的問題。
如何正確地重寫? 是否需要粘貼調用addL的函數? 對不起,如果這個問題已經被問過,我一看就知道了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.