while(1){
static int i=1;
int *p;
if(p=malloc(1024*1024)) //assigning 1 mb space
printf("%d.",i++);
else
exit(0);
}
如果上述程序在具有1GB ram的系统中运行,并且在具有4GB ram的另一个系统中运行我的时间和价值会有什么不同???
我们不知道,因为这是一个实现细节。C标准对此只字未提。
我们无法回答这个问题,因为这不仅仅取决于系统有多少RAM,还取决于"系统上还运行着什么"one_answers"系统的配置是什么"。例如,如果我们在Linux/Unix系统中设置了rlimit
,不允许进程使用超过256MB的内存,那么无论系统有多少GB或TB的RAM,都不允许分配超过256MB。
此外,考虑一个有6GB交换空间的1GB系统可能会比一个有4GB RAM但没有交换空间的系统给你更高的i
值?
除了"系统中有多少RAM"之外,还有其他变量决定应用程序可以分配多少RAM。