localFree 函数 (winbase.h)

释放指定的本地内存对象并使其句柄失效。

注意 与其他内存管理功能相比,本地函数的开销更大,提供的功能更少。 除非文档指出应使用本地函数,否则新应用程序应使用 函数。 有关详细信息,请参阅 全局和本地函数
 

语法

HLOCAL LocalFree(
  [in] _Frees_ptr_opt_ HLOCAL hMem
);

参数

[in] hMem

本地内存对象的句柄。 此句柄由 LocalAllocLocalReAlloc 函数返回。 释放使用 GlobalAlloc 分配的内存是不安全的。

返回值

如果函数成功,则返回值为 NULL

如果函数失败,则返回值等于本地内存对象的句柄。 要获得更多的错误信息,请调用 GetLastError。

注解

如果进程在释放内存后尝试检查或修改内存,则可能会发生堆损坏,或者可能会生成访问冲突异常 (EXCEPTION_ACCESS_VIOLATION) 。

如果 hMem 参数为 NULL则 LocalFree 将忽略该参数并返回 NULL

LocalFree 函数将释放锁定的内存对象。 锁定的内存对象的锁计数大于零。 LocalLock 函数锁定本地内存对象,并将锁计数递增 1。 LocalUnlock 函数将其解锁,并将锁计数递减 1。 若要获取本地内存对象的锁计数,请使用 LocalFlags 函数。

如果应用程序在系统的调试版本下运行, LocalFree 将发出一条消息,告知你正在释放锁定的对象。 如果要调试应用程序, LocalFree 将在释放锁定的对象之前输入断点。 这样,便可以验证预期行为,然后继续执行。

示例

有关示例,请参阅 LocalAlloc

要求

   
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

全局和本地函数

GlobalFree

LocalAlloc

LocalFlags

LocalLock

LocalReAlloc

LocalUnlock

内存管理函数