Мне было любопытно понять, сколько памяти я могу выделить на моем ноутбуке, поэтому я запустил минималистичную программу:
#include<stdio.h>
#include<stdlib.h>
int main() {
int Gb = 0;
while ( malloc(1<<30) ){
++Gb;
printf("Now allocated %d Gb in total\n", Gb);
}
}
Она должна выделять 1 ГБ памяти на каждом шаге, пока не появится mallo c терпит неудачу (NULL), заканчивая l oop. С другой стороны, вывод, который я получаю, заканчивается на:
Теперь выделено 131063 ГБ всего
, и это не может быть правдой (у меня 8 ГБ ОЗУ и нет раздела подкачки). Могу я спросить, что я не понимаю?
EDIT: Я забыл упомянуть, я работаю с Linux.