关于c#中使用Marshal.AllocHGlobal()方法开辟内存,达人请进~~

xiaoguaiwsx 2010-01-13 09:57:47
问题:我想用C#语言中的Marshal.AllocHGlobal()方法开辟一个较大的内存空间(2G左右),看到有的帖子讲说开辟的内存空间大小取决于操作系统,32位操作系统不超过2G,可是问题是,我怎么连1G的空间都开不出来??(机子内存4G)。help~~~
...全文
2224 6 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复

111,121

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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