c-malloc分配的大小如何取决于RAM


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。

相关内容

  • 没有找到相关文章

最新更新