定义了一个结构
typedef struct
{
char  cStr[10];
int idata;

}S_DATA, *LS_DATA;char dataBuf[1024];
char m_szBuf[512];
LS_DATA pData=(LS_DATA) dataBuf;
......省略中间给结构的赋值
memcpy_s(m_szBuf, MAX_BUF_SIZE, pData, dwSize);
调试的时候在m_szBuf里面,只有cStr的值,没有idata,这个是怎么回事

解决方案 »

  1.   

    你的代码好奇怪啊,将一个结构复制到一个char数组里去,而且结构里还有int数据。
      

  2.   

    你调试时是在VC的哪个窗口看到的?
    如果是Watch窗口,是因为cStr的长度小于10,后面跟了个\0,Watch窗口看到\0,就不会继续显示。
      

  3.   

    dataBuf 应该是结构体S_DATA对象的数据,然后直接内存拷贝
      

  4.   

    char dataBuf[1024];与S_DATA转换,
    因为databuf空间不S_DATA的空间大,可以将一个S_DATA写入到dataBuf
    你这中强制转换
    LS_DATA pData=(LS_DATA) dataBuf;
    只有当dataBuf前sizeof(LS_DATA )个字节写入的是一个LS_DATA数据
    才转换才能得到正确的数据否则的话,读取的是乱码