gpt4 book ai didi

c - 未指定模块定义文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:19 24 4
gpt4 key购买 nike

所以我有这段代码,下面给出了片段。

list* init(list* list1)
{
list1->head = NULL;
list1->size = 0;
return list1;
}

list1 是一个链表,init 是从 main 函数中调用的。现在在 list1->head= NULL 行上,在我运行代码后,它突出显示了这一行并说

未指定模块定义文件:使用默认值。

它停止执行。

我在 Windows 7 上使用 turbo C。

我该怎么办?我可以发布完整的代码吗..虽然它有点大..

最佳答案

根据我们在评论中的讨论,它看起来像是多种因素的结合。

首先,Turbo C 编译器似乎不知道 NULL 是什么。由于 NULL 只是 0 的类型定义,因此您可以改用 0。

其次,您似乎还没有为列表对象分配内存。在调用函数之前尝试执行以下操作。

list* list1 = malloc(sizeof(list));

但是,如果您要做的是创建并初始化一个新的 list 对象,您最好按如下方式重写该函数:

list* init(){
list *new_list = malloc(sizeof(list));
new_list->head = 0; // <-- this sets head to the equivalent of NULL
new_list->size =0;
return new_list;
}

如果您想要的是重新初始化现有列表的函数,那么无论如何您都会导致当前代码发生内存泄漏。

关于c - 未指定模块定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365461/

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