BYTE *ReslutStr;
BYTE Reslut[FF 02 30 60 31 35 30 30 03 55 ]Reslut是在内存中取的值.
指针ReslutStr从数组第5位开始取值,取到最后一位. 然后在删除最后两位。
BYTE Reslut[FF 02 30 60 31 35 30 30 03 55 ]Reslut是在内存中取的值.
指针ReslutStr从数组第5位开始取值,取到最后一位. 然后在删除最后两位。
BYTE Value5=*ReslutStr;//取第五位值
ReslutStr++;//往后走,得数清楚,别越界
BYTE Value6=*ReslutStr;//取第六位值
...走到最后时
*ReslutStr = 0x00;//删除最后一位
ReslutStr--;
*ReslutStr = 0x00;//删除倒数第二位
#include <malloc.h>
#include <stdlib.h>
typedef unsigned char BYTE;
BYTE *ReslutStr;
BYTE *Reslut;
//BYTE Reslut[FF 02 30 60 31 35 30 30 03 55 ]Reslut是在内存中取的值.
//指针ReslutStr从数组第5个字节(从0开始数)开始取值,取到最后一个字节.
//然后再删除Reslut的最后两个字节。
int i;
int main() {
Reslut=(BYTE *)malloc(10);
if (Reslut) {
Reslut[0]=0xFF;
Reslut[1]=0x02;
Reslut[2]=0x30;
Reslut[3]=0x60;
Reslut[4]=0x31;
Reslut[5]=0x35;
Reslut[6]=0x30;
Reslut[7]=0x30;
Reslut[8]=0x03;
Reslut[9]=0x55;
ReslutStr=&Reslut[5];
for (i=0;i<5;i++) printf("%02X ",ReslutStr[i]);
printf("\n");
Reslut=realloc((void *)Reslut,8);
if (Reslut) {
for (i=0;i<8;i++) printf("%02X ",Reslut[i]);
printf("\n");
}
free(Reslut);
}
return(0);
}
//35 30 30 03 55
//FF 02 30 60 31 35 30 30
memcpy(ReslutStr , Reslut + 5 , len -5 - 2) ;