c#中使用Marshal.AllocHGlobal最多可以分配多少字节?

qswii 2009-03-12 11:40:09
因为要算超大图像,想要知道
IntPtr ptr = Marshal.AllocHGlobal(length*sizeof(Byte));
length 最大值是多少?
另外如果用
Byte byte = new Byte[length];
这个length 最大值是多少?

谢谢!!
...全文
1036 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cppfaq 2009-03-12
  • 打赏
  • 举报
回复
操作系统相关。
zgke 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gomoku 的回复:]
这受限与操作系统。

在32位系统上,最大值应不操作2G(或开启3G选型时的3G)。
在64位系统上,可能是7000G左右,我在Vista64上试验过
IntPtr result = Marshal.AllocHGlobal(new IntPtr(6L * 1024 * 1024 * 1024));
[/Quote]


2G的内存..也够狠的
学习了...... 7000G啊....什么时候能用完呢
gomoku 2009-03-12
  • 打赏
  • 举报
回复
错别字更正:)

这受限操作系统。

在32位系统上,最大值应不超过2G(或开启3G选时的3G)。
在64位系统上,可能是7000G左右。

我在Vista64上试验过
IntPtr result = Marshal.AllocHGlobal(new IntPtr(6L * 1024 * 1024 * 1024));
gomoku 2009-03-12
  • 打赏
  • 举报
回复
这受限与操作系统。

在32位系统上,最大值应不操作2G(或开启3G选型时的3G)。
在64位系统上,可能是7000G左右,我在Vista64上试验过
IntPtr result = Marshal.AllocHGlobal(new IntPtr(6L * 1024 * 1024 * 1024));

111,092

社区成员

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

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

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