首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一台笔记本电脑怎么可能有这么多内存?

一台笔记本电脑怎么可能有这么多内存?
EN

Stack Overflow用户
提问于 2017-06-26 19:20:21
回答 1查看 108关注 0票数 5

我在处理malloc调用,我想知道操作系统能给我多少内存。我试过:

代码语言:javascript
复制
int main() {
    char *String = 0;
    String = malloc (100000000000000); // This is 10^14
    if (String)
        printf ("Alloc success !\n");
    else
        printf ("Alloc failed !\n");
    return 0;
}

还有..。啊,真灵。10^14大约是18兆字节。一台笔记本电脑能有这么多内存吗?如果这是不可能的,怎么解释呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-26 19:22:20

64位操作系统可以产生大量的地址空间.什么会限制它?

只有在需要时才会对地址空间进行物理内存(RAM)的备份。

malloc调用所要做的就是返回一个地址。在尝试读取或写入该地址之前,该地址不需要引用物理内存。

这种行为的缺点是,失败的malloc调用通常是实现的唯一机会,可以很好地告诉您,您无法拥有所要求的内存。在此之后,当系统试图使用比系统能够返回的内存更多的内存时,系统所能做的就是终止进程。

几乎可以肯定的是,您的实现为您提供了某种方法来控制这种行为,无论是在系统级别,对于每个进程,还是两者都是如此。

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

https://stackoverflow.com/questions/44767168

复制
相关文章

相似问题

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