首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针使用的疑问,该如何处理

2012-03-30 
指针使用的疑问int *ptrptr(int *)0x8000*ptr0xaabb为什么说这样用非常危险?第三条语句是不是这么理

指针使用的疑问
int *ptr;
ptr=(int *)0x8000;
*ptr=0xaabb;
为什么说这样用非常危险?第三条语句是不是这么理解:给0x8000所指的内存块赋值0xaabb?

[解决办法]
>第三条语句是不是这么理解:给0x8000所指的内存块赋值0xaabb?
是这个意思。不过实际运行可能会产生异常,因为0x8000所在的地址内容是不能读写的


[解决办法]
除非所有的资源都是自己分配使用
尽量避免直接操纵底层(内存、IO等),它们有系统软件管理
[解决办法]

探讨
>第三条语句是不是这么理解:给0x8000所指的内存块赋值0xaabb?
是这个意思。不过实际运行可能会产生异常,因为0x8000所在的地址内容是不能读写的

[解决办法]
对16位单片机而言,sizeof(int)==2
意思就是
当小端内存时,往0x8000地址处写入0xbb,往0x8001地址处写入0xaa;
当大端内存时,往0x8000地址处写入0xaa,往0x8001地址处写入0xbb

[解决办法]
+搞不好就挂了~~
探讨

除非所有的资源都是自己分配使用
尽量避免直接操纵底层(内存、IO等),它们有系统软件管理

[解决办法]
两个地址在不是你自己了解的情况下切记不可使用它们,因为他们是未知的,也正因为这个所以非常危险,可能没问题,也可能电脑崩溃!
最后一句的理解楼主是对的!

热点排行
Bad Request.