gpt4 book ai didi

c - 免费如何知道要免费多少?

转载 作者:行者123 更新时间:2023-11-30 16:40:11 24 4
gpt4 key购买 nike

在 C 编程中,您可以将任何类型的指针作为参数传递给 free,它如何知道要释放的已分配内存的大小?每当我将指针传递给某个函数时,我还必须传递大小(即 10 个元素的数组需要接收 10 作为参数才能知道数组的大小),但我不必将大小传递给免费功能。为什么不呢?我可以在自己的函数中使用相同的技术来避免需要处理数组长度的额外变量吗?

最佳答案

当您调用malloc()时,您可以指定要分配的内存量。实际使用的内存量比这个稍多,并且包括记录(至少)该 block 有多大的额外信息。您无法(可靠地)访问其他信息 - 您也不应该:-)。

当您调用free()时,它只是查看额外的信息来找出 block 有多大。

关于c - 免费如何知道要免费多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46772153/

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