gpt4 book ai didi

c++ - 为什么取消引用空指针是未定义的行为?

转载 作者:IT老高 更新时间:2023-10-28 21:37:27 28 4
gpt4 key购买 nike

根据 ISO C++,取消引用空指针是未定义的行为。我的好奇是,为什么?为什么标准决定声明它未定义的行为?这个决定背后的理由是什么?编译器依赖?似乎不是,因为据我所知,根据 C99 标准,它是明确定义的。机器依赖?有什么想法吗?

最佳答案

为取消引用 NULL 指针定义一致的行为将要求编译器在大多数 CPU 架构上每次取消引用之前检查 NULL 指针。对于专为速度而设计的语言来说,这是 Not Acceptable 负担。

它也只修复了一个较大问题的一小部分 - 有很多方法可以使无效指针超出 NULL 指针。

关于c++ - 为什么取消引用空指针是未定义的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793262/

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