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