【发布时间】:2013-03-22 21:52:02
【问题描述】:
我了解使用calloc() 和malloc() 将在堆上分配特定数量的内存并返回一个指向分配开头的指针。
我也知道free( poinerVar) 将取消分配(释放分配的内存)。但是,我无法想象 free() 如何知道要取消分配的内存量。诸如 C#、Java 等托管语言会跟踪它的垃圾回收对象,但 C 肯定不会(据我所知)。
在内存管理级别上发生了什么,可以使用 free 释放内存并仅将指针变量传递给它。
【问题讨论】:
-
有人必须以某种方式跟踪。语言标准只是不需要任何特定的方式来做到这一点。一切顺利!
标签: c malloc free dynamic-memory-allocation calloc