Winapi GlobalFree()导致用户断点。。。内存块是固定的,未锁定,单模块,无DLL

Winapi GlobalFree()导致用户断点。。。内存块是固定的,未锁定,单模块,无DLL,winapi,memory,Winapi,Memory,在我的程序中,有一次我调用GlobalFree()来释放我使用GMEM_FIXED标志用GlobalAlloc()分配的内存缓冲区。没有任何东西可以锁定此块。但是,当我在引用数据后调用GlobalFree()时(并且所有内部数据仍然与以前一样),程序停止并说它遇到了GlobalFree()代码中的用户断点 知道什么会导致这种情况吗?当堆函数检测到堆结构已损坏时,通常会调用DebugBreak(),它实现了一个用户断点 这意味着您已经写入了已分配区域的末尾(或开头)。+1在尝试取消分配不等于分配函

在我的程序中,有一次我调用GlobalFree()来释放我使用GMEM_FIXED标志用GlobalAlloc()分配的内存缓冲区。没有任何东西可以锁定此块。但是,当我在引用数据后调用GlobalFree()时(并且所有内部数据仍然与以前一样),程序停止并说它遇到了GlobalFree()代码中的用户断点


知道什么会导致这种情况吗?

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


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

+1在尝试取消分配不等于分配函数返回的指针时,我看到了类似的断点-