C语言,想在存储区的某个地址写上某个数值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,想在存储区的某个地址写上某个数值相关的知识,希望对你有一定的参考价值。

比如我要在0X00070000的地址处存储数据,例如:0X12345678,请问该语句如何实现

参考技术A 假如你要存储的数据为“100”。 那就么定义一个 int指针。例如:int *p = 0x00070000;
*p = 100;

值为0x12345678; 则 *p = 0x123456789;
参考技术B int *p=(int *)0x00070000;
*p=0x12345678;
这种写法是有一定危险性的追问

这么写,虽然不会报错,但是执行到该处时会直接进入hardfault

追答

出错是正常的,这是运行时错误,不是编译时错误。系统是不提倡直接使用地址的,因为那个地址对应的虚拟地址空间(页)可能是只读属性等不可写属性或你的进程根本没有开辟那个空间,出错正常啊。

如何在C语言中用printf()输出某个值的地址?

1.
C语言中要输出地址时通常以16进制的方式输出
2.
printf函数中要显示16进制数时用%x格式
3.
综上,要输出某个值的地址可以写为printf("%x",&变量);若变量为指针时,则应写为printf("%x",指针);
参考技术A 可以用printf("%d",&var);输出变量地址(10进制表示).
之所以每次都输出相同的地址值,是因为在C编译系统中为每一个变量仅分配一个内存地址,就是说不管这个变量存储的是什么值,它的内存地址总还是不变的.
参考技术B 1.
c语言中要输出地址时通常以16进制的方式输出
2.
printf函数中要显示16进制数时用%x格式
3.
综上,要输出某个值的地址可以写为printf("%x",&变量);若变量为指针时,则应写为printf("%x",指针);

以上是关于C语言,想在存储区的某个地址写上某个数值的主要内容,如果未能解决你的问题,请参考以下文章

如何在C语言中用printf()输出某个值的地址?

在c语言中子函数引用主函数中的值和引用主函数某个值的地址的区别

如何在C语言中用printf()输出某个值的地址?

C 语言数组 ( 多维数组操作模型 | 取某个数组元素地址 | 取某个数组元素值 )

C语言指针总结

求助C 语言 已知30个数,其中取20个数进行求和 的问题! 请直接把源代码写上!