malloc函数什么情况会分配不了内存

程序里用这个函数分配了一个1G多的内存,结果返回NULL,不知道为什么?听说最大可以分配4G的嘛4G内存是虚拟内存,不知道堆栈内存、堆内存、内核占用内存,程序体占用内存等... 程序里用这个函数分配了一个1G多的内存,结果返回NULL,不知道为什么?
听说最大可以分配4G的嘛
4G内存是虚拟内存,不知道堆栈内存、堆内存、内核占用内存,程序体占用内存等等内容,有没有具体分配的规则呢?请高手指教
(因为我程序要用到很大的内存,现在出问题了,不好定位。我们计算出来要存储到内存的数据约0.5G左右(能存储的越多越好),不连其他什么临时变量全局变量其他小链表等东西,结果程序运行到半路中止了,少存储一点程序可以正常运行。)
展开
 我来答
逍遥公虫
2010-06-26 · TA获得超过174个赞
知道答主
回答量:190
采纳率:0%
帮助的人:0
展开全部
4G是一个进程的总内存数(32位下),这里面包括堆栈内存、堆内存、内核占用内存,程序体占用内存等等内容。你一个函数就在堆里面分配了1G多,这样子分配的太多了,系统没有这么多可以分配给你。
malloc returns a void pointer to the allocated space or NULL if there is insufficient memory available
中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
xiaofanqingzjj
2010-06-23 · TA获得超过214个赞
知道答主
回答量:91
采纳率:100%
帮助的人:72.7万
展开全部
你分1G的内存干吗呢, 是工作需要还是自己闹着玩呢
最大4G是理论上的
地址总线如果是32位的话
CPU的最大寻址空间是4G, 也就是说全部的内存

莫非你的电脑开机后一点内存不用?

简直就一脑残嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式