为什么我可以在C中分配这么多的内存?

时间:2019-06-15 08:03:28

标签: c virtual-memory

我正在学习《计算机体系结构》中与虚拟内存有关的东西,这是本讲座中的一个示例,但是我不明白为什么我们可以“ malloc”这么多的内存。我的英语不太好,将不胜感激。

我在Ubuntu上测试了代码,下面列出了输出。

int G = 1024*1024*1024;
for (int n=0; ;n++) {
    char *p = malloc(G*sizeof(char));
    if (p==NULL) {
        fprintf(stderr, "fail to allocate > %g TiByted\n", n/1000.0);
        return 1;
    }
}

///来源:加州大学伯克利分校的CS61C

这是我编译和执行的方式

$ gcc OutOfMemory.c
$ ./a.out
failed to allocate > 131 TiBytes

0 个答案:

没有答案