怎么获取char数组;最后4位的值
如何获取char数组;最后4位的值
memcpy(&temp, &m_buf[m_index], sizeof(int));
如何将上面的m_buf 的后4位 也就是最后一个int数字的值 拷贝的 temp中啊;;;
------解决方案--------------------
memcpy(&temp, m_buf + sizeof(m_buf) - sizeof(int), sizeof(int));
------解决方案--------------------
temp = m_buf[m_index] & 16;
------解决方案--------------------
楼上的思想是正确的,但实现有些问题,首先m_buf+1的值依赖于m_buf的类型,如果类型为int,那么m_buf+1指针将偏移4个字节。所以以上代码在m_buf类型为char或者byte时有效,如果m_buf类型为int,需要修改为如下格式:memcpy(&temp, m_buf + (sizeof(m_buf)/sizeof(int) - 1), sizeof(int));
------解决方案--------------------
------解决方案--------------------
位和字节不是一回事!
memcpy(&temp, &m_buf[m_index], sizeof(int));
如何将上面的m_buf 的后4位 也就是最后一个int数字的值 拷贝的 temp中啊;;;
C++
------解决方案--------------------
memcpy(&temp, m_buf + sizeof(m_buf) - sizeof(int), sizeof(int));
------解决方案--------------------
temp = m_buf[m_index] & 16;
------解决方案--------------------
楼上的思想是正确的,但实现有些问题,首先m_buf+1的值依赖于m_buf的类型,如果类型为int,那么m_buf+1指针将偏移4个字节。所以以上代码在m_buf类型为char或者byte时有效,如果m_buf类型为int,需要修改为如下格式:memcpy(&temp, m_buf + (sizeof(m_buf)/sizeof(int) - 1), sizeof(int));
------解决方案--------------------
memcpy(&temp, m_buf + (sizeof(m_buf) /sizeof(int))-1, sizeof(int));
------解决方案--------------------
位和字节不是一回事!