讨教malloc和GlobalAlloc问题,请高手不吝赐教

wu4long 2005-02-23 03:47:42
最近,我遇到比较奇怪的内存分配问题。
我们在load某个dll之前的代码中,可以正常的通过malloc来分配内存,而在load此dll之后,我们调用malloc会失败(并且出现异常),而通过GlobalAlloc可以来分配。
此dll是第三方软件,用于显示界面的功能。
请教各位高手,为什么malloc调用会失败????
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wu4long 2005-02-24
  • 打赏
  • 举报
回复
感谢各位,后来查明原因了,由于我们的配置区域没有配置好,使得加载的dll分配的空间不够大,造成我们读写数据越界了,而后再次通过malloc来分配空间时(如果此内存已经被改写了,重而出现了异常)。至于为什么GlobalAlloc可以的话,可能是malloc和GlobalAlloc分配的区域不太一样(没有分配到已经被改写的区域)。
yuzl32 2005-02-23
  • 打赏
  • 举报
回复
在 Windows 平台上开发的程序,如果你想配置内存,你最好用 Win32 API 的版本的 GlobalAlloc(),而非C语言的版本的 malloc()。因为一个平台的链接库和某种语言的链接库,它们由不同厂商所提供的,所以可能无法百分之百契合,特别是牵涉到内存管理、资源管理、执行绪等和操作系统有密切关系的更是这样。
gaoxiaolin_311 2005-02-23
  • 打赏
  • 举报
回复
出现的是什么异常?
malloc和GlobalAlloc的分配机制可能不一样。
winstonch 2005-02-23
  • 打赏
  • 举报
回复
应该是你程序的问题吧,与DLL没关系

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧