定义了一个结构
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,这个是怎么回事
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,这个是怎么回事
如果是Watch窗口,是因为cStr的长度小于10,后面跟了个\0,Watch窗口看到\0,就不会继续显示。
因为databuf空间不S_DATA的空间大,可以将一个S_DATA写入到dataBuf
你这中强制转换
LS_DATA pData=(LS_DATA) dataBuf;
只有当dataBuf前sizeof(LS_DATA )个字节写入的是一个LS_DATA数据
才转换才能得到正确的数据否则的话,读取的是乱码