Я использовал следующий код, чтобы выяснить это, но я всегда получаю 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-битной системе?