查看当前系统可用的动态内存(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语言 ,