STM32指针使用

 

CALCBILL_DATA_ST是个结构体占地址10个

uint8 txbuf1[10]={1,2,3,4,5,6,7,8,9,10};

uint8 txbuf2[10]={11,12,13,14,15,16,17,18,19,20};

uint8 *pbuf1 = txbuf1;

CALCBILL_DATA_ST  *pbuf2 = txbuf2;

如此pbuf1和pbuf2分别指向txbuf1和txbuf2空间

 

uint8 *pbuf1 = txbuf1;

CALCBILL_DATA_ST  *pbuf2 ;

memcpy(pbuf2 ,txbuf2,10);

pbuf2 指向的地址是系统分配的,分配只是个地址空间,后面的10个uint8空间可能和其他参数重叠不一定

pbuf2 指向空间地址数据就是txbuf2的数据指,但是空间地址不一样

pbuf1 原本指向txbuf1,地址数据应该是1-10,但是系统给pbuf2 分配的地址在pbuf1 前面一个地址的话

uint8 txbuf1[10]={12,13,14,15,16,17,18,19,20,10};

 

定义指针时一定要明确指针指向,否则就是野指针,尤其定义结构体或数组指针

你可能感兴趣的:(STM32)