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

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中实验结果如下

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

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