【发布时间】:2017-07-25 21:29:57
【问题描述】:
在 C 编程中,您可以将任何类型的指针作为参数传递给 free,它如何知道要释放的已分配内存的大小?每当我传递一个指向某个函数的指针时,我还必须传递大小(即一个包含 10 个元素的数组需要接收 10 作为参数才能知道数组的大小),但我不必将大小传递给免费功能。为什么不呢,我可以在我自己的函数中使用相同的技术来避免我需要围绕数组长度的额外变量进行购物车吗?
【问题讨论】:
-
一个类似的问题:stackoverflow.com/questions/851958/…(虽然我会说它并不完全重复)
-
buddy system 是另一种可以根据指针计算出来的方法,而不需要每个块的开销。
-
这篇文章解释的很好:stackoverflow.com/questions/1957099/…