| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2764 人关注过本帖
标题:[求助]如何使用C语言编程实现查看系统内存?
只看楼主 加入收藏
xiucai315
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-6-22
结帖率:0
收藏
 问题点数:0 回复次数:4 
[求助]如何使用C语言编程实现查看系统内存?
帮个忙,谢谢
搜索更多相关主题的帖子: C语言 内存 系统 
2007-09-08 14:12
biubui
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-6-27
收藏
得分:0 
查看系统内存”不太明白,能说得具体些吗?大抵是直接用指针操作的。

2007-09-08 17:42
xiucai315
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-6-22
收藏
得分:0 

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

2007-09-08 18:38
biubui
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-6-27
收藏
得分:0 
这些貌似主要不是用内存操作来实现的。

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


2007-09-08 18:43
c_er
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-9-8
收藏
得分:0 
回复:(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的地址会有所不同,,但都是统一的..

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


一件小事做久了, 就是一件很伟大的事情.
2007-09-08 19:02
快速回复:[求助]如何使用C语言编程实现查看系统内存?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019898 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved