gpt4 book ai didi

c - C 中的链表,最后一个节点指向 NULL?

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

在 C 中,我必须始终将最后一个节点初始化为 NULL 吗?我通常会在教程和书籍中看到这种情况。但据我了解,一个未初始化的指针拥有与 NULL 指针相同的地址。那么为什么要初始化呢?

最佳答案

But to my understanding, an uninitialized pointer holds the same address as a NULL pointer

可能是(坏)运气。

在任何情况下,读出一个未初始化 指针都会调用未定义的行为。这是否会迟早导致崩溃(或任何其他“奇怪”行为)是未知的,因为未定义行为的本质。

然而,根据指针变量“所在”的内存分配方式,内存可能“已经”初始化,如果分配

这两种方法都分配内存并提前0。对于大多数最近的系统来说,有一个指针变量(存在于这个内存中)携带 NULL 的值就足够了。

但请注意,仍然可能存在对 NULL 使用不同位模式的实现,而不仅仅是 0 位。因此,为了保持 100% 的可移植性,最好始终使用 NULL 显式初始化,而不是依赖于隐式清除内存。顺便说一句,这也有助于潜在读者阅读您的资料。

关于c - C 中的链表,最后一个节点指向 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31913059/

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