问题描述
- 关于c++程序“本地堆”的问题
-
编程的时候,遇到的问题。
我调用了第三方的动态库,在计算某个内存块的大小时,用到了 _msize _函数,结果
产生了一个ASSERT错误,查看文件大概是在_ASSERTE(_CrtIsValidHeapPointer(pUserData)这个地方差生了错误,并且他的注释之中提到了这样一句,The pointer MUST come from the 'local' heap. 我不太理解,什么事'local' heap?
希望有懂得大神,帮忙解答
解决方案
参考:http://blog.csdn.net/cto_51/article/details/9190725
解决方案二:
http://blog.csdn.net/laryyzhao/article/details/7544900
解决方案三:
本地堆
验证指针指向本地堆(由 C 运行时库的这个实例创建和管理的堆;DLL 可以有它自己的库实例,因而也可以有它自己的、位于应用程序堆之外的堆)中的内存。
解决方案四:
内存访问越界了。
进程中,加载的dll也会分配一块自己的堆,以便维护区分跟进程本身的堆。当然也可以设置成dll,exe共享堆的方式。
时间: 2024-10-26 08:25:21