【发布时间】:2011-09-09 17:47:07
【问题描述】:
所以我有这个代码,下面给出了sn-p。
list* init(list* list1)
{
list1->head = NULL;
list1->size = 0;
return list1;
}
list1 是一个链表,init 是从 main 函数调用的。
现在在线list1->head= NULL,在我运行代码后,它会突出显示这一特定行并说
未指定模块定义文件:使用默认值。
它停止了执行。
我在 Windows 7 上使用 Turbo C。
我该怎么办? 我可以发布完整的代码吗.. 虽然有点大..
【问题讨论】:
-
能否添加断言(list1);在函数的顶部。
-
我怀疑我们需要更多代码来解决这个问题。话虽如此,可能没有为您的编译器定义 NULL - 尝试
list1->head = 0看看它是否会抱怨。 -
@Chris 将其更改为
list->head =0它说,一般保护异常 0x213F:0X000D 处理器故障 -
@eisbaw list* init(list* list1) { assert(list1) ; list1->head = NULL;列表1->大小= 0;返回列表1; } 在运行时给出断言失败。可能的原因?
-
@Karan if
assert(list1)失败,这意味着您在调用函数之前没有为 list1 分配内存。在这之前你有list* list1 = malloc(sizeof(list))吗?