小编Ohu*_*ter的帖子

Sysmalloc:断言

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)

c linked-list

2
推荐指数
1
解决办法
6569
查看次数

标签 统计

c ×1

linked-list ×1