QByteArray数据进行CRC32校验时产生的随机结果
QT中使用QByteArray来存放了C++中的char数组。
两端使用相同的crc32进行校验,QT中却产生了随机的校验结果, C++端产生唯一的正确校验结果。
查看QByteArray相关资料,未发现有什么不妥之处,直到查看到如下文章:
https://blog.csdn.net/qq_33861317/article/details/95614667
才发现自己的错误:
QByteArray* pBuf;
pBuf->append(PROTOCOL_HEAD);
pBuf->append(。。。);
crc = crc32(0x00, (unsigned char*)pBuf, bufferLength);
修改为:
crc = crc32(0x00, (unsigned char*)pBuf->data(), bufferLength);
即可。