怎样利用C语言修改已知内存地址里的内容?

main()
{
void *p;
p=400000; \* 内存的地址为 0x400000 *\
scanf("%s",p);
}

为什么不对?哪里错了?

char *p;
p = (char*)0x400000; //你要用0x打头,而且指针必须有类型
scanf("%s", p);

这个程序你在PC机上不要去试,基本上都失败的,这种直接指定地址的做法,一般都是在嵌入式开发中使用的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-12-22
你可以学习操作系统和编译原理了

怎样利用C语言修改已知内存地址里的内容?
char *p;p = (char*)0x400000; \/\/你要用0x打头,而且指针必须有类型 scanf("%s", p);这个程序你在PC机上不要去试,基本上都失败的,这种直接指定地址的做法,一般都是在嵌入式开发中使用的。

如何用c\/c++编一个程序,向某一已知内存地址写入某值
void main(){ char *p,a='a';scanf("%x",p);p=a;} 这样就可以往任意内存赋值了。这只是dos。你想破坏windows有点难。lcj513110说的嵌入式系统指的是单片机吧。MOV是汇编语言,可以直接对内存进行操作。VC支持32位的汇编语言和C语言的混合编程。用汇编语言可以更方便地对内存进行读写。我只学过...

怎么通过c语言指针修改别人软件里面数据的内存
定义指针*p 更改p为你想要的内存地址。(注意,其实大多时候这个地址都是偏移地址(见汇编))你再改动*p值就能更改这个地址对应数据 如果你一定要方问任意内存地址 请用asm语句调用汇编语句,更改段地址 而在windows时代,访问任意地址已经是不可以了,windows不访问硬件地址(为了安全),比哪不能访问显卡...

C语言怎改变文件外存地址里的数字?
重新写进硬盘。这是更改硬盘文件的一种方法。如果你是问外存地址怎么改。那是改不了的。因为文件的读写是编译器通过调用操作系统的api来完成的。

C语言中什么函数可以修改文件内容(可以随意删除原内容的一部分)?
} \/\/完成将fp所指文件的内容输出到屏幕上显示 fclose(fp); \/\/关闭fp所指文件}B. 写一个字符到文件中去1. 函数原型int fputc(int ch,FILE *fp)2. 功能说明 把ch中的字符写入由fp指出的文件中去。3. 参数说明 ch:是一个整型变量,内存要写到文件中的字符(C语言中整型量和字符量可以通用)。 fp:这是个...

如何用c语言修改一个数值?
如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可!\/\/\/ \/\/(有错,这样不能修改,会报重复定义的错误)\/\/\/ (4)可以保护被修饰的东西,防止意外的修改,增强程序

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

用C语言如何将内存中从某一地址开始的数据写入文件?
简单实现过程 char *buffer; \/\/定义个缓冲区,pt=指向开始地址 memcpy(buffer,pt,X); \/\/X里是每次读取的大小,小可以一次读入!不要比buffer大就ok File fp;\/\/写文件 fOpen();\/\/里面省了 fwirte(buffer,sizeof(char),X,fp);pt+=X;\/\/指针后移...然后循环读取,写入!判断什么时候完!呵呵!

C语言怎么在指定地址Addr处分配一段内存区域?
或者让特定的区不让编译器分配变量和常量,代码,KEIL可以设定的,这样强制使用它.

在C语言中如果已经知道了一个数据的内存地址,怎样直接从内存中读取出...
\/\/这两句的含义是两个内存地址里面的内容,他们和变量a,b没有逻辑关系 \/\/printf("*m=%d\\t,*n=%d\\n",contenta,contentb); \/\/这里不用指针变量直接输出int数据 printf("m=%d\\t,n=%d\\n",a,b);return 0;} 这里就是你说的比较a以及a所在的内存块(adda)里面内容是不是和a相等 ...

相似回答
大家正在搜