gpt4 book ai didi

c - 绑定(bind)生命周期如何可以比对象生命周期长?

转载 作者:行者123 更新时间:2023-11-30 17:10:12 24 4
gpt4 key购买 nike

我读到,对象绑定(bind)的名称可以比对象本身具有更长的生命周期。根据我的理解,当对象被销毁时,那么名称和对象之间的绑定(bind)也消失了。那么绑定(bind)生命周期怎么可能比对象生命周期长呢?请解释如何在 C 中使用此示例代码

char *p = malloc(4);
strcpy(p, "abc");
free(p); // object gone, but binding of p, to a useless address, lives on.

最佳答案

问题的真正答案:

Then how can binding lifetime can be longer than object lifetime?

是:“不能”。正如您所说,p仍然具有值,但它不可用*,因此任何“绑定(bind)”必定已被破坏。 “绑定(bind)”是看待这个问题的一种奇怪的方式。我可以看到你要去哪里,但我从来没有听说过它的使用方式与你使用它的方式完全一样(在 C 的上下文中)。

* 我所说的“不可用”是指“未定义的行为”——它可能有效,但它不可靠,而且永远没有充分的理由去尝试它(任何告诉你其他情况的人都是在撒谎)

关于c - 绑定(bind)生命周期如何可以比对象生命周期长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982086/

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