free()函数如何知道要释放多少字节以及如何在我们的程序中访问该信息?

时间:2017-10-16 13:59:21

标签: c memory dynamic data-structures

我正在学习动态内存分配函数,并且每当我们使用malloc函数时,你都会指定一些字节在内存中分配。

因此,当我们分配这个分配的内存块的地址时,指针将只有第一个地址的信息

当我们再次调用此指针上的自由函数时 free()它如何知道要释放多少字节,因为它只将指针作为参数,只包含有关分配内存的第一个咬合的信息。

操作系统是否保留某种数据库表来保存有关分配的第一个字节的地址和分配的字节数的信息?

还是完全发生了其他事情?

如果存在类似这样的数据库,那么谁在维护这个数据库以及如何在我的程序中外部或显式地访问它?

用于访问此信息的用例: - 对于任何说我们不需要这些信息的人....

让我们说我在一个函数中并且我没有传递一个关于我的数组有多少整数的参数...在这种情况下,为了最小化参数的数量,我们可以做到这一点(虽然这不可取,但

0 个答案:

没有答案