gpt4 book ai didi

c++ - 使用 NULL 值初始化内存块是否等同于 free?

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:42 24 4
gpt4 key购买 nike

假设我有一个指针 *p,它指向堆上的 10 个内存块。现在,我不再使用 free(),而是像这样使用 NULL(或 '\0')手动清除它:

for (int i = 0; i < length; ++i{
p[i] = '\0';
}

当每个位都清零时,这是否被认为是释放了一个内存块?或者,我必须使用 free() 来告诉操作系统内存块确实已释放并且可以使用(我猜)?

最佳答案

确实必须调用free() 才能将内存返回给操作系统。

一个充满零的内存块并不比一个充满一的 block 更“空闲”。

例如,考虑一个仅由黑色像素组成的位图。在大多数格式中,关联的内存块将用零填充。这是否意味着该 block 可以重复使用?

关于c++ - 使用 NULL 值初始化内存块是否等同于 free?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6732320/

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