嗨我想将整数的每个字节放在一个队列中但由于某种原因我得到了不同的值。
int integer = 100;
char *chrp = (char *) &integer;
char charBuffer[10];
std::queue<char> queue;
for (int i = 0; i < sizeof(int); i++) {
queue.push(chrp[i]);
}
for (int i = 0; i < queue.size(); i++) {
charBuffer[i] = queue.front();
queue.pop();
}
int *result = (int *) charBuffer;
我不明白为什么*result
与整数不相等。感谢
答案 0 :(得分:4)
每次你的第二个循环i
上升一个并且 queue.size()
下降一个 - 所以你在读完一半数据后就会停止。< / p>
while (!queue.empty())
怎么样?