prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 7.23

我正在分配包含指向其他动态分配对象的指针的结构。当我释放一个结构时,是否也必须释放每个附属指针?


是的。malloc对结构声明或已分配内存的内容一无所知;它尤其不知道已分配的内存是否包含指向其他已分配内存的指针。一般来说,您必须安排从malloc中返回的每个指针free都单独传递给,并且只传递一次(如果确实要释放)。

一个好的经验法则是,程序中每次调用malloc时,您都应该能够指向该free调用释放的内存。malloc(在许多情况下,您将以与分配时相反的顺序释放内存块,尽管并非强制要求这种顺序。)

另请参见问题 7.24


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管