C语言中怎样访问和修改物理内存

我是C语言初学者,不是说C语言可以直接访问和修改物理内存吗,请问怎么样访问和修改?
比如,我想在一个程序中给一个变量赋值,该值保存在某一内存空间,然后用getch();语句暂停程序,再在另一个程序中把保存在该内存空间的值修改为10,接着第一个程序继续执行,输出该变量的值,输出值应为修改后的10。可以实现吗?或者其他的修改物理内存的例子也可以。。
谢谢1楼的回复,但是有点,你说的那个我知道,可是那个只能修改本程序的变量啊,那不要取地址也可以改了,但如果不是本程序的变量,而是某一物理内存地址的值怎么修改啊?
哦,还有个问题,用取地址符号取得的地址好象不是物理地址啊。一般PC支持最大4G内存,也就是物理地址为4个字节,而C语言中在一般模式下(small)的地址是2个字节,所以应该不是物理地址,只是与物理地址的映射,是这样的吗?

第1个回答  2006-04-03
可以啊!你学过指针了吗?定义一个整形指针:int value;
int *a=&value;//&为取地址
之后就能通过*a来直接访问value的地址了
但是好象windows有安全机制,如果你试图改变windows内核程序的内存,你的程序会停止运行.本回答被提问者采纳

C语言中怎样访问和修改物理内存
可以啊!你学过指针了吗?定义一个整形指针:int value;int *a=&value;\/\/&为取地址 之后就能通过*a来直接访问value的地址了 但是好象windows有安全机制,如果你试图改变windows内核程序的内存,你的程序会停止运行.

c语言如何访问常量物理空间
楼上输出的是进程虚拟地址空间的内容。在大多数操作系统中的用户态下是不能访问物理地址空间的。

C语言内存管理机制--malloc\/calloc\/free原理与实现
malloc函数用于在系统中动态分配连续的可用内存。它要求内存大小至少为指定的字节数,返回指向内存块起始地址的指针,多次调用不重叠分配地址,实现内存分配和释放。malloc函数的返回值总是字节对齐,适合高效访问C语言数据结构。五、初探实现malloc 一个简单实现的malloc函数直接从未映射区域划出内存,但忽略了记...

用C语言编写的程序,怎么从一个物理地址读数
win32下需要用驱动模式编程,dos下练着玩就无所谓了

“c语言允许直接访问物理地址”
如汇编)和高级语言之间,是允许直接访问物理地址的,而好多高级语言是没法直接访问物理地址的,都是经过地址映射得到的逻辑地址,比如最简单的51单片机,sfr SCON=0x98,sbit TI=0x99 ,都是直接对硬件地址操作,但在windows里,你是无法操作内存条的某个具体地址的,都是操作系统来统一分配的 ...

“c语言允许直接访问物理地址,能进行位操作”是什么意思啊
就是使用C语言能够直接定位物理内存的地址,即通过内存地址(如0xfa283401)得到该地址上的数据。计算机中的数据都是以位(bit,比特)来作为基本单位的,C语言能直接对位进行操作,包括求与,并,或,异或,非等。物理地址是一个很宽泛的概念,磁盘,内存等存储设备都有物理地址的说法。物理内存地址指的...

看啦下C语言,在他的特点中看到,C语言能直接访问物理地址,我不懂什么叫...
物理地址是建立在硬件上面的,C语言是软件,软件需要在硬件上面运行,就像我们电脑软件一样,需要主板,CPU,内存这些实实在在的东西。比如在C语言中定义一个变量char a = 0;这时候就会为它分配一个区域来存储a里面的东西0,这个区域就是为物理地址,它是唯一的。

c语言问题。 用指针可以直接修改物理内存地址的值 但可不可以修改其他应...
应用程序连“物理内存”都碰不到 程序在操作的“数据”到底是什么?是真正存储在内部存储器中,还是放在外部存储器(例如硬盘文件)?说起来是很难被一般程序预测的。如果操作系统觉得合适,就可以把内存中的内容“交换”到硬盘上的“页面文件”中——因此数据可能根本没有存储在“内存”中 即使是存储在...

C语言竟是如何调用硬件
通过向内存空间写数据。硬件会把硬件上的各种寄存器(外行可以理解为访问硬件的接口或者操作硬件的工具)映射到某一块内存地址空间上,之后只要用汇编指令,甚至C语言去读写这一段内存地址空间(并非真正操作物理内存),就可以达到操作硬件的目的了。 如果题主还有WindowsXP环境(虚拟机也可以),就可以用汇编指令直接操作显存:...

C语言编程中,内存物理地址是什么概念?
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是...

相似回答