gpt4 book ai didi

c - 传递指针的free() 'know'如何有效?

转载 作者:太空狗 更新时间:2023-10-29 15:49:11 25 4
gpt4 key购买 nike

我知道无效指针会导致未定义的行为,但 free 如何知道指针是否有效?

在空闲列表中的每个 block 的开头是否有一种校验和?类似于:

if((*ptr) == 'CHECKSUM'))
free
else
do something undefined

最佳答案

I know that an invalid pointer leads to undefined behaviour but how does free know whether a pointer is valid or not?

唯一的检查是指针是否为空。如果它是空指针,则 free(根据规范)将不执行任何操作。

否则,free 只是尝试“释放”内存,假设它是由 malloccallocrealloc,它可以使任何事情发生(通常是坏事)——因此是“未定义的行为”。

关于c - 传递指针的free() 'know'如何有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000928/

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