winapi - GlobalFree() 导致用户断点...内存块是固定的,未锁定,单个模块,无 DLL

标签 winapi memory

在我的程序中的某一时刻,我调用 GlobalFree() 来释放我使用 GMEM_FIXED 标志通过 GlobalAlloc() 分配的内存缓冲区。没有任何东西可以锁定这个 block 。但是,当我在引用数据后调用 GlobalFree() 时(所有内部数据仍与原来相同),程序停止并表示在 GlobalFree() 代码中遇到了用户断点。

有什么想法可能会导致这种情况吗?

最佳答案

当堆函数检测到堆结构已损坏时,它们通常会调用 DebugBreak() - 它实现用户断点。

这意味着您已经写入了分配区域的末尾(或开头)。

关于winapi - GlobalFree() 导致用户断点...内存块是固定的,未锁定,单个模块,无 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4426776/

相关文章:

django - Apache mod_wsgi django调用keras模型时如何释放占用的GPU内存?

iOS 纹理分配在探查器中显示内存使用量是原来的两倍

winapi - 获取最小化窗口的大小

c++ - 通过pid windows判断进程是否存在

c++ - 如何在 C++ 中读取不包含在 ascii 中的字符?

windows - 如何从屏幕上获取文本

php - fatal error : Allowed memory size of 25165824 bytes exhausted (tried to allocate 35 bytes)

c++ - 具有相同 src 的多个 'strcat' 上的内存损坏

winapi - 错误 C1083 : cannot open include file: 'winsock2.h' : No such file or directory

android - 关于android中最大堆大小和可用内存的两个问题