最大内存空间分配 C语言

以下结果正常吗?

img

#include<stdio.h>
#include<stdlib.h>
int main(){
    void *a;
    int cnt = 0;
    while ((a=malloc(1024*1024*1024)))
    {
        cnt++;
    }
    printf("分配了%dGB的空间.\n",cnt);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

这个其实并没有实际分配,你需要加上

while ((a=malloc(1024*1024*1024)))
    {
a[1024*1024*1024-1]=1;
        cnt++;
    }

实际写入一个值