编程的时候,遇到的问题。
我调用了第三方的动态库,在计算某个内存块的大小时,用到了 _msize _函数,结果
产生了一个ASSERT错误,查看文件大概是在_ASSERTE(_CrtIsValidHeapPointer(pUserData)这个地方差生了错误,并且他的注释之中提到了这样一句,The pointer MUST come from the 'local' heap. 我不太理解,什么事'local' heap?
希望有懂得大神,帮忙解答
本地堆
验证指针指向本地堆(由 C 运行时库的这个实例创建和管理的堆;DLL 可以有它自己的库实例,因而也可以有它自己的、位于应用程序堆之外的堆)中的内存。内存访问越界了。
进程中,加载的dll也会分配一块自己的堆,以便维护区分跟进程本身的堆。当然也可以设置成dll,exe共享堆的方式。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。