我定义了一个结构体struct _sTempS1 //字符串连接
{
char SM[2];//低位
char SKeyID[20];//高位
}   TempS1;又定义了一个数组 char S1[22];
这个结构体和数组都占22字节  现在我想把结构体复制到数组中 该如何做呢?

解决方案 »

  1.   

    memcpy(&tempS1, S1, sizeof(TempS1));
      

  2.   

    除非你是#push(1)的,否则,会发生内存越界错误!一般来说,你的结构体大小为24字节!
      

  3.   

    这样写应该没问题了吧,刚才把复制方向弄反了
    memcpy(S1, &TempS1, sizeof(S1));
      

  4.   

    #include <iostream>
    using namespace std;#pragma pack(push,1)
    struct _sTempS1 //字符串连接 

    char SM[2];//低位 
    char SKeyID[20];//高位 
    }TempS1; #pragma pack(pop)int _tmain(int argc, _TCHAR* argv[])
    {
    memcpy(&TempS1,"测试一下啊",sizeof(TempS1));
    char S1[22]={0}; memcpy(&S1,&TempS1,sizeof(TempS1)); cout<<S1; getchar();//是为了能够看到输出结果
    return 0;
    }我做的一个小测试