对于在C++的dll中申请的内存,使用者会占用么?

使用C++写了一个DLL库。在库中使用了一个结构体,结构体中含有一个指针。该指针指向一片在C++中申请的内存。然后我将这个结构体的指针返回给调用者。调用者使用dllimp... 使用C++写了一个DLL库。在库中使用了一个结构体,结构体中含有一个指针。该指针指向一片在C++中申请的内存。然后我将这个结构体的指针返回给调用者。调用者使用dllimport的方式使用动态库。在后继的其他C++函数中,我会使用这个结构体中的指针来操作那片内存。现在的问题是,调用者在使用时,会出现栈损坏的错误。我就在考虑是不是因为这片内存的指针因为没有直接返回给调用者,所以会出现被调用者占用这样的情况?同时,第二个困惑的地方是,出错的地方一般是在调用某个函数后的一段时间内。这个时间不确定的。但是,如果没有出错,则之后的使用就不会出问题。请高手解答了。 展开
 我来答
joychen_
2014-07-29 · TA获得超过1747个赞
知道大有可为答主
回答量:1617
采纳率:100%
帮助的人:1839万
展开全部
DLL中申请的内存也在主程序的内存空间中,如果是 new出来的,并且没有释放的话,和在主程序在申请的效果是一样的。 出现栈损坏的情况,可能是因为有内存越界的情况。
追问
如何检查内存越界呢?
追答
检查代码,看是否有越界写入,比如使用不安全的 strcpy,strcat 函数等。
另外,可以使用BoundChecker等工具帮助查找。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式