【发布时间】:2020-04-21 13:03:28
【问题描述】:
目前我正在查看PrjFillDirEntryBuffer() 函数的fileBasicInfo 参数。它是一个指向结构的指针。一旦我创建了一个结构并将其传递给函数,谁负责释放该结构的内存?我猜它是调用者,因为我认为该函数不会在任何地方保存对结构的引用,但我不知道如何确定。有规律吗?它是否记录在某处?
【问题讨论】:
-
建议:大部分时候可以自动分配结构,用完就让结构超出范围。
-
查看文档。很少有函数分配、传输或释放资源,而且它们都明确表示。
-
一般来说,默认情况下,您传递给 API 函数的指针(无处不在,不仅在 Windows API 中)被认为归您所有,并且您应该负责管理这些对象。当 API 开始拥有它们时,通常会在 API 文档中特别提及。
-
愚蠢的规则:创建资源的人应该释放它。
-
@9072997 是预分配的,不是预填充的。如果它已经被填充,则无需调用填充函数来填充它。..