社区
C语言
帖子详情
讨教malloc和GlobalAlloc问题,请高手不吝赐教
wu4long
2005-02-23 03:47:42
最近,我遇到比较奇怪的内存分配问题。
我们在load某个dll之前的代码中,可以正常的通过malloc来分配内存,而在load此dll之后,我们调用malloc会失败(并且出现异常),而通过GlobalAlloc可以来分配。
此dll是第三方软件,用于显示界面的功能。
请教各位高手,为什么malloc调用会失败????
...全文
95
4
打赏
收藏
讨教malloc和GlobalAlloc问题,请高手不吝赐教
最近,我遇到比较奇怪的内存分配问题。 我们在load某个dll之前的代码中,可以正常的通过malloc来分配内存,而在load此dll之后,我们调用malloc会失败(并且出现异常),而通过GlobalAlloc可以来分配。 此dll是第三方软件,用于显示界面的功能。 请教各位高手,为什么malloc调用会失败????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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没关系
C++第3课:C++内存泄露检测原理及案例实战
C++第3课:C++内存泄露检测原理及案例实战本课程侧重于C++的内存管理及泄露检测。我将带领大家学习OS的内存管理机制、C++的堆和栈、内存泄露及检测等。本课程具体的内容主要包括C++内存泄露案例、VS2015内存泄露检测、野指针、Virtua
lAlloc
/HeapAlloc/
malloc
/new的区别、C++堆和栈的内存管理、栈简介、堆简介、堆与栈区别、栈的内存分配、Windows的虚拟内存技术、Windows的内存映射文件技术、Linux的虚拟内存技术、Linux的Valgrind内存泄露检测、Windows的VLD内存泄露检测、C++内存泄露检测方式之对象计数、C++内存泄露检测方式之重载new和delete、C++内存泄露检测方式之智能指针等。
new,
malloc
,
Globa
lAlloc
详解
new,
malloc
,
Globa
lAlloc
详解 相同点:都可用于申
请
动态内存和释放内存 不同点: (1)操作对象有所不同。
malloc
与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象消亡之前要自动执行析构函数。由于mallo
内存分配秘籍:new,
malloc
,
globa
lAlloc
的区别与详解
C++内存分配秘籍—new,
malloc
,
Globa
lAlloc
的区别与详解 [转贴 2010-05-22 15:03:13] 由于同学让我帮他将其现在的一个C++程序转换成纯C程序,原来以为应该没那么难,但是当改得编译没有错误时,然一运行就会出现错误,经过一番搜寻,才知道出现在内存分配的
问题
上,也就是说主要出现在动态内存上,从这让自己更加深刻地体会动态内存的意义和
C++内存分配—new,
malloc
,
Globa
lAlloc
详解
C++内存分配秘籍—new,
malloc
,
Globa
lAlloc
详解 C++内存分配秘籍—new,
malloc
,
Globa
lAlloc
详解 _______只为因内存分配而无法入眠的程序员 1.new是标准
C++内存分配秘籍—new,
malloc
,
Globa
lAlloc
详解
C++内存分配秘籍—new,
malloc
,
Globa
lAlloc
详解 _______只为因内存分配而无法入眠的程序员 一、关于内存 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章