当前位置:编程学习 > 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的知识库
补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,