社区
C#
帖子详情
关于c#中使用Marshal.AllocHGlobal()方法开辟内存,达人请进~~
xiaoguaiwsx
2010-01-13 09:57:47
问题:我想用C#语言中的Marshal.AllocHGlobal()方法开辟一个较大的内存空间(2G左右),看到有的帖子讲说开辟的内存空间大小取决于操作系统,32位操作系统不超过2G,可是问题是,我怎么连1G的空间都开不出来??(机子内存4G)。help~~~
...全文
2224
6
打赏
收藏
关于c#中使用Marshal.AllocHGlobal()方法开辟内存,达人请进~~
问题:我想用C#语言中的Marshal.AllocHGlobal()方法开辟一个较大的内存空间(2G左右),看到有的帖子讲说开辟的内存空间大小取决于操作系统,32位操作系统不超过2G,可是问题是,我怎么连1G的空间都开不出来??(机子内存4G)。help~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luo_kai326
2012-09-06
打赏
举报
回复
这个分配的内存会自己释放么?
xiaoguaiwsx
2010-01-22
打赏
举报
回复
谢谢wartim~~~
wartim
2010-01-13
打赏
举报
回复
内存碎片太多,每块都不满1G,虽然碎片加起来可能超过1G了,而且由于程序本身占用的内存也算在2G里,所以要申请1G的连续内存可能有点困难,用
System.Runtime.MemoryFailPoint MFP = new System.Runtime.MemoryFailPoint(1024);
可以测试是不是能得到这么多内存,如果不能就会抛出异常
让.Net 应用程序突破2G的内存访问限制
http://www.chinaz.com/Program/.NET/1124463V2008.html
xiaoguaiwsx
2010-01-13
打赏
举报
回复
wartim,为什么没有呢?
wartim
2010-01-13
打赏
举报
回复
没有1G的连续空间
平生我自如
2010-01-13
打赏
举报
回复
顶
C#
Mar
sha
l.
AllocH
Global
、
Mar
sha
l.StringToH
Global
Ansi 与
Mar
sha
l.FreeH
Global
的区别
C#
Mar
sha
l.
AllocH
Global
、
Mar
sha
l.StringToH
Global
Ansi 与
Mar
sha
l.FreeH
Global
的区别
接收大华相机图像数据时,
使用
了
Mar
sha
l.
AllocH
Global
()导致
内存
泄漏的问题
在
使用
Mar
sha
l.
AllocH
Global
()申
请
了非托管的
内存
时,需要手动释放
内存
,否则会造成
内存
泄漏;可以
使用
Mar
sha
l.FreeH
Global
()将申
请
的
内存
释放掉。
Mar
sha
l.
AllocH
Global
()导致
内存
泄漏问题
在将彩色Bitmap转为Halcon的HObject时,需要用指针读取图像数据,而byte*需要运行在unsafe代码块
中
,此时用
Mar
sha
l.
AllocH
Global
()分配
内存
后,需要手动释放,否则会造成
内存
泄漏,释放函数为:
Mar
sha
l.FreeH
Global
...
30.
Mar
sha
l.
AllocH
Global
C#
例子
然而,在这个上下文
中
,“H”更可能是为了与“
Global
”形成一个有意义的缩写或标识,而不是直接代表“Heap”。分配的大小可以是8个字节。...用完要用Free释放
内存
,否则这个非托管
内存
不会被
C#
自动释放。
C#
Mar
sha
l的
使用
,非托管
内存
中
分配
内存
注意的问题
IntPtr ptr =
Mar
sha
l.
AllocH
Global
(704* 576 * 3); 如果没有手动释放
内存
,会有
内存
溢出; 发生OutOfMemoryException 没有足够的
内存
继续执行程序时引发的异常。 调用
Mar
sha
l.
AllocH
Global
必须调用
Mar
sha
l....
C#
111,121
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章