一个关于DLL中分配内存同时在DLL中释放出错的问题

CaesireKin CaesireKin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题大致是这样的,在我的DLL中,有两个函数:
Export void A()
{
int i* = new int[BUFFER];
//省略部分代码赋值和计算的代码
delete[] i;
}

Export void B()
{
int i* = new int[BUFFER];
//省略部分代码赋值和计算的代码
delete[] i;
}

两个函数中唯一的区别只有省略的那部分执行的数学计算不同,在主程序中,调用函数A()是没有_CrtIsValidHeapPointer这个错误的,但是函数B()却会提示_CrtIsValidHeapPointer相关的错误,我在网上搜了下,大致的意思都是说DLL和EXE彼此的堆管理器是相互独立的,可是如果是这样,不是应该函数A()也会报错么?为何只有B报错,而A不会?求教所有的可能,谢谢了
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
CaesireKin
C++ 语言 65,214 成员 250,514 内容