我很好奇我可以在笔记本电脑上分配多少内存,因此我运行了简约程序:
#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);
}
}
它应该在每一步分配1Gb内存,直到malloc失败(NULL),从而结束循环。另一方面,我获得的输出以:
结尾现在总共分配了131063 Gb
并不能绝对正确(我有8Gb RAM,没有交换分区)。我可以问一下,我在误解什么?
编辑:我忘了提,我正在使用Linux。
虚拟内存的奇迹。直到您以某种方式实际对其进行初始化之前,内存不需要占用任何RAM。您会从