【发布时间】:2015-04-29 14:36:32
【问题描述】:
我有这样的功能
void UnitTestWorker::constructTestPayload(QByteArray &payload)
{
QString List = "127.0.0.1";
unsigned short Port = 12344;
unsigned int RequestId = 1;
memcpy(payload.data(),reinterpret_cast<char*>Port,sizeof(Port));
memcpy(payload.data()+sizeof(Port),reinterpret_cast<char*>RequestId ,sizeof(RequestId ));
}
但我收到访问冲突错误,似乎我无法执行 reinterpret_cast<char*>Port 或 reinterpret_cast<char*>RequestId 之类的操作。
【问题讨论】:
-
你的意思是
&Port重新解释演员表吗?&RequestId也一样?将unsigned short或int的值 转换为char*会很不靠谱。我怀疑你的意思是使用他们的地址。 -
即使更改为 &Port 和 & RequestID 我得到正确的东西是因为 char : 1 byte short : 2 bytes
-
我不知道你刚才说了什么。
标签: c++ qt casting char qbytearray