当前位置: 代码迷 >> C语言 >> [求助]如何使用C语言编程实现查看系统内存?
  详细解决方案

[求助]如何使用C语言编程实现查看系统内存?

热度:167   发布时间:2007-09-08 14:12:20.0
[求助]如何使用C语言编程实现查看系统内存?
帮个忙,谢谢
搜索更多相关的解决方案: C语言  内存  系统  

----------------解决方案--------------------------------------------------------
查看系统内存”不太明白,能说得具体些吗?大抵是直接用指针操作的。
----------------解决方案--------------------------------------------------------

比如可以查看你现在用了多少内存,查看系统时间什么的


----------------解决方案--------------------------------------------------------
这些貌似主要不是用内存操作来实现的。

查看用了多少内存,一般使用Windows的API函数取得。
查看系统时间的函数在time.h头文件。


----------------解决方案--------------------------------------------------------
回复:(xiucai315)[求助]如何使用C语言编程实现查看...


啊 ,,以前我是有这种想法,,,但是只能做到,,利用指针 观看内存的变化,和分配..但是还是很 空洞..

举一个例子吧..呵呵..(主要是要到指针变量..)
#include <stdio.h>
#include <conio.h>
void main()
{
int *p;
scanf("%d\n",p); /* 此句是让用户随机输入一个数据*/
printf("%d\n",*p); /*打印出这个数据*/
printf("%d",p); /*打印出这个数据的 地址*/
getch(); /*让用户暂停一下,便于观察*/
}

Tips: 我用的是TC编译器哈,,呵呵..
用TC 最好 先在定义数据的后面 清下屏哈,,, clrscr();

运行后,,屏幕会出现三个数字..
12 表示 用户输入的数据
12 表示 显示用户输入的数据
1234 表示 该数据保存在内存中的 地址

因为,我定义的是 int,所以 在内存中一个数据要 内存要分配 两个字节,即两个地址..(还有可能有的编译器分配的字节数不一样,,忽忽,,也可以测试啊`~~~)


下面开始测试.

如果在P地址的前面在添加数据,那么P的地址要相应的后移.就可以观察到P地址的变化了.
如果添加在后面,就不能很好的观察了,因为P的地址不变.


例:
void main()
{
int *p;
printf("1"); /*随机输入数字.在P地址的前面多了两个字节(即两个地址)*/
scanf("%d\n",p);
printf("%d\n",*p);
printf("%d",p);
}

运行后屏幕将显示:
12 表示用户输入的数据
12 表示显示用户输入的数据
1236 表示P在内存的 地址

因为一个数字(int 型)占2个字节.. 所以 P的地址变成了 1236
要是输入 12的 话,, p 的地址就变成了 1238

以上的只能简单的描述,数据在内存的大致分配..建议在测试的时候 最好用数字测试...(因为打印的时候 是%d(强制性以(int 型)打印),如果是字符型的话,,那么在打印出P的地址的时候可能会有误差..)..


我用的是TC 3.0编译器,,要是其他的编译器可能 P的地址会有所不同,,但都是统一的..

呵呵,,见笑了...........


----------------解决方案--------------------------------------------------------
  相关解决方案