main: malloc.c:2405: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' 失败。
在尝试生成用户只能添加到头部或尾部的双向链表时,我最终在顶部收到了可爱的流产消息。
我已经使用 gdb 将其缩小到导致这种情况的功能,但我真的不知道我做错了什么。它分配第一个节点,然后,它向我抛出错误。
功能如下:
data* initD(){
data *D = NULL;
D = malloc(sizeof(data*));
if (!D){
printf("Error in allocation of data\n");
exit(0);
}
D->head = NULL;
D->tail = NULL;
D->next = NULL;
D->prev = NULL;
D->val = -1;
return D;
}
Run Code Online (Sandbox Code Playgroud)