#include <algorithm>
#include <chrono>
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <cstring>
#include <numeric>
struct my_data {
uint32_t some_value;
std::vector<uint32_t> some_vector;
my_data (uint32_t v, std::vector<uint32_t>&& vec) :
some_value(v), some_vector(std::move(vec)) {}
};
int main() {
std::vector<my_data> all_data;
for (size_t i = 0; i < 10; ++i) {
std::vector<uint32_t> temp = {'a', 'b', 'c', 'd', 'e'};
uint32_t x = 3;
all_data.emplace_back(x, std::move(temp));
}
// Now write it to file, two ways...
//std::ofstream out("tmp", std::ofstream::binary);
for (size_t i = 0; i < 10; ++i) {
// Works OK
std::cout.write((char *)all_data[i].some_vector.data(), all_data[i].some_vector.size() * sizeof(uint32_t));
// Does not work, gives garbage values
std::cout.write((char *)&all_data[i].some_vector[0], all_data[i].some_vector.size() * sizeof(uint32_t));
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNocm9ubz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPG51bWVyaWM+CgoKc3RydWN0IG15X2RhdGEgewoJdWludDMyX3Qgc29tZV92YWx1ZTsKCXN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzb21lX3ZlY3RvcjsKCglteV9kYXRhICh1aW50MzJfdCB2LCBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4mJiB2ZWMpIDogCgkJCXNvbWVfdmFsdWUodiksIHNvbWVfdmVjdG9yKHN0ZDo6bW92ZSh2ZWMpKSB7fQp9OwoKCgppbnQgbWFpbigpIHsKCglzdGQ6OnZlY3RvcjxteV9kYXRhPiBhbGxfZGF0YTsKCWZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTA7ICsraSkgewoJCXN0ZDo6dmVjdG9yPHVpbnQzMl90PiB0ZW1wID0geydhJywgJ2InLCAnYycsICdkJywgJ2UnfTsKCQl1aW50MzJfdCB4ID0gMzsKCQlhbGxfZGF0YS5lbXBsYWNlX2JhY2soeCwgc3RkOjptb3ZlKHRlbXApKTsKCX0KCQoJLy8gTm93IHdyaXRlIGl0IHRvIGZpbGUsIHR3byB3YXlzLi4uCgkvL3N0ZDo6b2ZzdHJlYW0gb3V0KCJ0bXAiLCBzdGQ6Om9mc3RyZWFtOjpiaW5hcnkpOwoJZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDsgKytpKSB7CgkJLy8gV29ya3MgT0sKCQlzdGQ6OmNvdXQud3JpdGUoKGNoYXIgKilhbGxfZGF0YVtpXS5zb21lX3ZlY3Rvci5kYXRhKCksIGFsbF9kYXRhW2ldLnNvbWVfdmVjdG9yLnNpemUoKSAqIHNpemVvZih1aW50MzJfdCkpOwoJCQoJCS8vIERvZXMgbm90IHdvcmssIGdpdmVzIGdhcmJhZ2UgdmFsdWVzCgkJc3RkOjpjb3V0LndyaXRlKChjaGFyICopJmFsbF9kYXRhW2ldLnNvbWVfdmVjdG9yWzBdLCBhbGxfZGF0YVtpXS5zb21lX3ZlY3Rvci5zaXplKCkgKiBzaXplb2YodWludDMyX3QpKTsKCQkKCX0KCn0=