gpt4 book ai didi

c - 尝试从用户库访问函数时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:51 26 4
gpt4 key购买 nike

双链表.h

#ifndef _DOUBLE_LINKED_LIST_H
#define _DOUBLE_LINKED_LIST_H

typedef unsigned int uint;
typedef unsigned long ulong;
typedef void* Object;
typedef struct _DNode {
Object data;
struct _DNode* prev;
struct _DNode* next;
}DNode;

typedef struct _DoubleLinkedList{
DNode* head;
DNode* tail;
uint length;
uint elementSize;
}DoubleLinkedList;

DoubleLinkedList* allocDList (uint elementSize);
#endif

双链表.c

#include "DoubleLinkedList.h"

DoubleLinkedList* allocDList (uint elementSize)
{
DoubleLinkedList* l;
l->head = NULL;
l->tail = NULL;
l->length = 0;
l->elementSize = elementSize;
return l;
}

主.c

#include <stdio.h>
#include "DoubleLinkedList.h"

int main ()
{
DoubleLinkedList* ab;
ab = allocDList(10);
return 0;
}

当我尝试运行它时,我遇到了一个带有核心转储的段错误。

这是作业中的要求。

DoubleLinkedList* allocDList(uint elementSize): this function allocates the DoubleLinkList

最佳答案

你还没有初始化l,所以l->HEAD不会工作。您可以使用 malloc 将其初始化为:

DoubleLinkedList* l = malloc(sizeof(DoubleLinkedList));

此外,在 main 函数中,一旦您使用完变量 ab,请记住使用 free 释放它使用的内存> 功能如下:

int main ()
{
DoubleLinkedList* ab;
ab = allocDList(10);

//Processing here

free(ab); //Release once it is no longer needed

return 0;
}

关于c - 尝试从用户库访问函数时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24313150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com