gpt4 book ai didi

c - 无论如何释放空指针或先检查?

转载 作者:IT王子 更新时间:2023-10-28 23:38:46 27 4
gpt4 key购买 nike

假设我在一个程序中遇到一个实例,我将释放一个 NULL 指针,或者首先检查它是否为 NULL 并跳过 free() 函数调用。

简单地释放一个 NULL 指针会更有效吗?我搜索了一下,显然,对于 C89 之后的实现,释放 NULL 指针是无害的 - 所以决定归结为效率。

我的假设是调用 free() 时可能会产生相当多的开销。因此,在调用 free() 函数之前进行简单的逻辑检查可能是非常必要的。


tl;dr 版本,

当调用 free() 时内部发生了什么,这可能会或多或少地在释放前先检查指针是否为 NULL 的效率?

最佳答案

C 标准保证调用 free(NULL) 是无害的并且没有任何效果。因此,除非您认为在 NULL 指针上调用 free() 表明您在程序的其他地方遇到了逻辑错误,否则没有理由仔细检查。

关于c - 无论如何释放空指针或先检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775608/

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