首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mpir中创建大型数组

在mpir中创建大型数组
EN

Stack Overflow用户
提问于 2013-03-28 02:51:38
回答 1查看 125关注 0票数 0

对于mpir中的小数组和浮点数,我没有收到错误消息,但是当我想要创建一个非常大的数组时。假设>100,000,000,我得到以下错误消息:

GNU :无法分配内存(size=16)按任意键继续。。。

不幸的是,我需要2个大的数组。一个是100,010,000号,另一个是1,000,100号。这在windows 64位机器上是可能的吗?

有没有一种方法可以从内存中清除部分数组,而不是整个数组(在MPIR上)来创建空间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-28 03:05:56

您不能成功地将那么多内存分配到一个数组中,因为数组的元素必须在内存中连续出现,而堆的当前状态不太可能允许这样的情况。

假设您讨论的是float阵列,其中系统上的float可能具有4大小,那么能够分配400MB内存的唯一可能方法就是存在4亿个未被占用的连续内存地址。

编辑:我并不是说这是不可能的,我只是说它不可靠。

edit 2:一个解决方案是让你以块为单位分配内存。您可以将其分配为每组一百万个浮点数,而不是一个包含一亿个浮点数的数组。您更有可能分配100个4MB的块,而不是1个400MB的块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15667065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档