程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c malloc-關於C malloc()的請教....

c malloc-關於C malloc()的請教....

編輯:編程綜合問答
關於C malloc()的請教....

在WINDOWS 64bits 下
執行:
#include
#include

int main(void)
{
    void *vp;
    int count=0;
    while(  ( vp=malloc(100*1024*1024) )  )
    {
        count++;
    }
    printf("已經分配%d00 MB 內存空間 \n",count);

    getchar();
    return 0;
}
運行結果:  已經分配5100 MB(每次運行的結果都不一樣。) 內存空間。、
為什麼在4G內存下可以分配5100MB內存空間?難道是緩存?
怎樣精准的計算導致內存信息洩漏?5100是怎樣來的?這兩個問題之間有什麼聯系嗎?

最佳回答:


Windows 平台下,確實有可能是虛擬內存;像 WinCE 下,就沒有這種現象。

精准的計算導致內存信息洩漏,可以通過對已使用和未使用的內存數值進行檢控來實現。
自己寫代碼:如何:調查進程的內存使用情況.aspx "如何:調查進程的內存使用情況")
或通過如下的方法:內存的使用與windows 內存監控

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved