HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap 错误的解决方法

博客内容涉及到在使用DLL与EXE交互时遇到的内存分配问题,具体表现为在释放vector时出现'HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap'错误。问题的根源是DLL与EXE在不同地址空间分配和释放内存。解决方法是确保内存管理在正确的作用域内进行,避免在DLL中分配内存而在EXE中释放。博客还提到了对vector的正确使用方式,包括赋值操作和几种初始化方法。
摘要由CSDN通过智能技术生成

抽象出问题是这样的:

 

class DLL_API1 A

{

func()

{

vector vec;

B b;

b.func(vec);

 

return TRUE;

}

}

 

其中B是另一个导出类,定义如下

class DLL_API2 B

{

private:

vector m_vec;

public:

func( vector &vec )

{

vec = m_vec;

}

}

 

运行时发现,每次运行到A的return TRUE释放vector的时候,都会报错:user breakpoint called from code at  xxxxxxxxxxxxx,并在Debug的提示框中出现:HEAP[x

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值