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显示,就可以看到,写入成功了

上一篇:C语言杂谈(三)存储类别


下一篇:shell脚本中的括号和实例