unsigned char *p=(unsigned char*)zf;
如何把55555和66666顺序存入p中。
每个p[n]可以存255以内的数字,按说55555可以存到两个p[n]-p[n+1]中。但怎么做那?

解决方案 »

  1.   

    涉及到内存操作,不能用int。
      

  2.   

    先用int b=55555;
    涉及到内存的话,你就定义一个字符数组char aa[5];aa[0]=(b>>24)&0xff; //b的高位
    aa[1]=(b>>16)&0xff;
    aa[2]=(b>>8)&0xff;
    aa[3]=b&0xff; //b的地位
      

  3.   

    曾经试过使用BYTE和LPSTR来做,但仍不得要领。
      

  4.   

    //存入
    WORD w[2] = {55555, 66666};
    memcpy(p, w, 4);//取出
    WORD w[2];
    memcpy(w[0], p, 2);
    memcpy(w[1], p + 2, 2);
      

  5.   

    //考虑错误,66666一个word放不下。
    //如果单个整数最大只需三个字节,那么DWORD w[2] = {55555, 66666};
    char tmp[4];
    memcpy(tmp, w[0], 4);
    memcpy(p, tmp, 3);
    memcpy(tmp, w[1], 4);
    memcpy(p + 3, tmp, 3);