gpt4 book ai didi

c - 如果在使用 malloc 后它返回一个 NULL 指针并且您继续尝试使用该指针,会发生什么情况?

转载 作者:行者123 更新时间:2023-12-05 01:30:53 24 4
gpt4 key购买 nike

我知道在使用malloc之后,你必须确保返回的指针不为NULL,但如果你没有呢?

最佳答案

关于在 * 中使用空指针运算符,2011 C 标准(委员会草案 N1570)在第 6.5.3.2 条第 4 段中说:“如果为指针分配了无效值,则一元 * 运算符的行为未定义。 ”脚注指出空指针是无效值。

许多人会将使用空指针视为试图访问具有无效地址的内存,这会导致异常并终止您在常见硬件和操作系统上的程序。然而,现代编译器及其优化器非常复杂,会对您的代码执行各种抽象数学转换。结果是,如果您的代码具有未定义的行为,就会发生各种令人惊讶的事情。

以其他方式使用空指针也可能导致未定义的行为,包括将其与 -> 一起使用运算符,下标运算符,+-二元运算符和关系运算符( <<=>>= )。

关于c - 如果在使用 malloc 后它返回一个 NULL 指针并且您继续尝试使用该指针,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47384054/

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