C语言 将整数写入内存指定的连续字节单元中

将整数数组写入0x40003000开始的连续10个字节内存单元中,注意unsigned char *指向一个字节,而int *指向1个字(4个字),但是可以把字中存储的整数放入字节单元中,只要不超过表示的范围,注意虽然unsigned char *是指无符号的字节指针,但是它也可以指向有符号的数,有没有符号无所谓啦,只要是指向1个字节的指针即可,所以是char*也行,试过了。

//数据写入存储器
void WriteToMemory(int *pSnAddr,int nCnt,unsigned char *pDnAddr)//或者 char*
{
int i;
  if (nCnt<=0) return;                 
  for(i=0;i<nCnt;i++)
  {
     *pDnAddr++=*pSnAddr++;   //将pSnAddr指向的字节单元数据写入pDnAddr指向的字节单元
                              //pSnAddr加1,pDnAddr加1
  }
}




int main()
{
 int i;
 int buffer[10]={23,-24,45,1,2,-7,6,8,5,-3};
 int readbuffer[10]={0};     
 WriteToMemory((int *)buffer,10,(unsigned char *)0x40003000);/ /或者 char*

 return 0;
}

在codewarrior中实验结果如下


在ARMUL仿真对象下运行后,右键,format 选择decimal显示,就可以看到,写入成功了



转载于:https://www.cnblogs.com/unflynaomi/p/4476853.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值