我正在尝试使用 std::vector 作为内存缓冲区:
int main( )
{
int i = 0x01020304;
size_t size = sizeof(int);
std::vector<char> data;
data.insert( data.end(), (char*)&i, (char*)(&i + size) );
for ( int i = 0; i < data.size(); ++i){
std::cout << int(data[i]) << std::endl;
}
return 0;
}
我期待输出 4个 3个 2个 1
但是我得到了
4
3
2
1
51
73
-107
81
-9
127
0
0
36
-7
84
-50
有人能解释一下我做错了什么吗?
最佳答案
大小以字节为单位,所以你需要增加char*,而不是int*。
data.insert( data.end(), (char*)&i, (char*)(&i)+size );
关于c++ - 使用 std::vector 作为数据缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34203733/