C语言工作中容易忽视的问题
Posted 叮咚咕噜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言工作中容易忽视的问题相关的知识,希望对你有一定的参考价值。
本文指在记录自己在项目开发过程中遇到的一些忽视的基础知识导致的异常问题
2021/8/5指针操作引发内存异常
问题环境:ARM芯片,64位,需要将一个寄存器地址0x2f004_0008写入0x13;由于代码编写问题,导致0x2f004_000C寄存器被修改
问题代码:
//省略部分:0x2f004_0008 mmap出4K Byte的内存进行寄存器的写入
//假设mmap出的地址为0x7f004_0008
//写入寄存器的代码为
int32 i32Data = 0x13;
*((uint64 *)0x7f004_0008) = i32Data; //此处将0x2f004_000C的值修改了
问题分析:(uint64 *)0x7f004_0008作用是表示该地址里面保存的数据为64位数据,所以i32Data在写入时将高位补0了,从而导致了该问题
以上是关于C语言工作中容易忽视的问题的主要内容,如果未能解决你的问题,请参考以下文章