malloc分配的大小取决于RAM?

时间:2013-02-12 18:10:07

标签: c memory-management malloc

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内存的系统中运行 我的时间和价值会有什么不同?

2 个答案:

答案 0 :(得分:0)

我们不知道,因为它是一个实现细节。 C标准对此没有任何说明。

答案 1 :(得分:0)

我们无法回答这个问题,因为它不仅取决于系统有多少RAM,还取决于“系统上还运行什么”和“系统的配置是什么”。例如,如果我们在Linux / Unix系统中设置rlimit不允许进程使用超过256MB,那么无论多少千兆字节或太字节RAM,您都不会被分配超过256MB系统有。

另外,考虑一个带有6GB交换空间的1GB系统可能会比具有4GB RAM且没有交换空间的系统提供更高的i值?

还有其他变量,而不是“系统中有多少RAM”,它决定了应用程序可以分配多少RAM。