Сколько ГБ может выделить malloc для вашей программы

Я использовал следующий код, чтобы выяснить это, но всегда получаю 1 в качестве ответа. здесь что-то не так. Спасибо

#include <stdio.h>
#include <stdlib.h>

int main(){
    int mult = 0;
    int chk =8;
    do{
        mult+=1;
        int *p = (int*)malloc(1024*1024*1024*mult);
        if(p==0){
            chk =0;

        }else{
            free(p);
        }
    }while(chk !=0);
    mult = mult -1;
    printf("The number of gigs allocated is : %d\n",mult);
    return 0;
}

Просто чтобы помочь, у меня 64-битная система с установленными Windows и Linux. Таким образом, верна ли приведенная выше логика, даже если я получаю только 1 ГБ в качестве ответа в 64-битной системе?

5
задан user465983 4 February 2011 в 06:07
поделиться