首页
社区
课程
招聘
未解决 [求助]Windows系统,只给每个进程分配2个G的内存空间吗?
发表于: 2019-10-2 16:31 2421

未解决 [求助]Windows系统,只给每个进程分配2个G的内存空间吗?

2019-10-2 16:31
2421

#include <stdio.h>
#include <malloc.h>
int main()
{
while(true)
{
    int* i = (int* )malloc(999999); 
}
return 0;
}
1、我什么我32位程序,每启动一个窗口只增2G,而64G会内存占满,Windows是不是只给每个进程分配2G内存空间。
2、如果是64程序,如何避免内存申请过大,有什么机制防止这类错误发生吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 47
活跃值: (197)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1. 32 位是这样的
2. 一般正常的程序都不会考虑这个问题 你把缸里的水倒空了 谁也别想活
2019-10-2 21:37
0
雪    币: 421
活跃值: (196)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
图片来源于网络,windows默认用户空间地址为2g
不去真正使用的内存空间会被操作系统换出到硬盘,所以如果有程序真的这么只申请不去用不会造成系统内存被它恶意耗尽。
如果一直在对申请的内存进行操作,系统负载会很高但是不会完全不可用。学习一下计算机操作系统是怎么管理内存的你就知道了。

2019-10-2 22:01
1
游客
登录 | 注册 方可回帖
返回
//