设为首页 加入收藏

TOP

查看当前系统可用的动态内存(C)
2014-11-24 00:40:13 来源: 作者: 【 】 浏览:54
Tags:查看 当前 系统 可用 动态 内存

最近做的一个系统内存少的可怜,只有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 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一些经典的操作 下一篇字符集之Unicode与字符串对象

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: