程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 查看當前系統可用的動態內存(C)

查看當前系統可用的動態內存(C)

編輯:關於C語言

最近做的一個系統內存少的可憐,只有512KB,用起來十分緊張,就寫了個查看當前可用內存的函數,最大可查找512KB,打印出所有可用的內存塊,
最小單位為512B.
[cpp]
1. #define MAX_MEM   512 * 1024              //最大的可用內存 
2. #define MAX_MEM_PEICES_NUM   200   //可記錄的最多的內存碎片個數 
3. #define MIN_MEM         512                          //查找的最小內存碎片大小 
4. void ct_CalcFreeMem(void)  
5. {  
6.    int curFreeSize = MAX_MEM;  
7.    int * pt = NULL; 
8.    //Calc freee mem 
9.    int * ptArray[MAX_MEM_PEICES_NUM];    
10.    int i = 0,  j = 0; 
11.    int totalMem = 0; 
12.    printf("====================\n"); 
13.    while(1) { 
14.       pt = (int *)malloc(curFreeSize); 
15.       if (pt != NULL) { 
16.          printf("Free mem slice %d = %d B\n", i, curFreeSize); 
17.          ptArray[i] = pt; 
18.          pt = NULL; 
19.          i++; 
20.          totalMem += curFreeSize; 
21.       } 
22.       curFreeSize -= MIN_MEM; 
23.       if (curFreeSize < MIN_MEM) { 
24.          break; 
25.       } 
26.    } 
27.  
28.  
29.    for (j=0; j<i; j++) { 
30.       if (ptArray[j]) { 
31.          free(ptArray[j]); 
32.          ptArray[j] = NULL; 
33.       } 
34.    } 
35.    printf("Total free mem = %d B\n", totalMem); 
36.    printf("====================\n"); 
37. } 

 

摘自 herbert的知識庫

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