yymmdd000 2015-07-21 06:28 采纳率: 0%
浏览 2198

memcpy操作后内容打印出来一致,但是memcmp比较时却不一致

贴码:
void compare(CONF_R_3_4_DATA_MSG_t* pData,data_crc9_t* data_crc9_1)
{
...
pData->pdu.crc9_hi = 0&0x100;//reset crc9_hi for new crc9
memcpy(data_crc9,&pData->pdu,1);
memcpy(data_crc9+1,&pData->pdu.userdata,strlen(pData->pdu.userdata));
//比较data_crc9内容与data_crc9_1内容是否一致
ret = memcmp(data_crc9,data_crc9_1,strlen(pData->pdu.userdata)+1);
}

void muti_frag()
{
    ...
    ((CONF_R_3_4_DATA_MSG_t*)pData)->pdu.crc9_hi = 0&0x100;
    ((CONF_R_3_4_DATA_MSG_t*)pData)->pdu.dbsn = i&0x7f;
    memcpy(data_crc9,&((CONF_R_3_4_DATA_MSG_t*)pData)->pdu,1);
    memcpy(data_crc9+1,((CONF_R_3_4_DATA_MSG_t*)pData)->pdu.userdata,block_size);
    ...
    result[i] = compare_crc( pData,data_crc9);
    ...
}
我的疑惑:两个函数中dbsn、crc9_hi、userdata经打印出来,结果一致,用memcmp比较时,比较一个字节(即dbsn和crc9_hi)内容一致,只比较userdata内容也一致,但是比较整体的data_crc9时,内容不等,所以觉得很奇怪。
  • 写回答

6条回答 默认 最新

  • threenewbee 2015-07-21 06:31
    关注

    打印出来一样,那只是字符串一样,字符串\0之后的字符不同,不会在打印的时候看出来。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题