【问题标题】:How size allocted by malloc is depends on RAM? [duplicate]malloc 分配的大小取决于 RAM? [复制]
【发布时间】:2013-01-28 03:17:58
【问题描述】:
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 内存的系统中运行 我的时间和价值会有什么不同???

【问题讨论】:

  • 有些系统malloc() 永远不会失败。可以说它们是糟糕的系统;)

标签: c memory-management malloc


【解决方案1】:

我们不知道,因为这是一个实现细节。 C 标准对此只字未提。

【讨论】:

    【解决方案2】:

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

    另外,考虑一个有 6GB 交换空间的 1GB 系统可能比一个有 4GB 内存但没有交换空间的系统给你更高的i 值?

    除了“系统中有多少 RAM”之外,还有其他变量决定了您的应用程序可以分配多少 RAM。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 2014-02-02
      相关资源
      最近更新 更多