BYTE *ReslutStr;
BYTE Reslut[FF 02 30 60 31 35 30 30 03 55 ]Reslut是在内存中取的值.
指针ReslutStr从数组第5位开始取值,取到最后一位. 然后在删除最后两位。

解决方案 »

  1.   

    ReslutStr = Reslut + 4;//指针定位到第五位
    BYTE Value5=*ReslutStr;//取第五位值
    ReslutStr++;//往后走,得数清楚,别越界
    BYTE Value6=*ReslutStr;//取第六位值
    ...走到最后时
    *ReslutStr = 0x00;//删除最后一位
    ReslutStr--;
    *ReslutStr = 0x00;//删除倒数第二位
      

  2.   

    #include <stdio.h>
    #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
      

  3.   

    int len = sizeof(Reslut);
    memcpy(ReslutStr , Reslut + 5 , len -5 - 2) ;