Tiền bối an minh thần võ, xin nhận của vãn bối một lạy.
Vãn bối nghe lỏm thế gian đồn đại là casting trực tiếp là một điều cấm kỵ trên giang hồ, nhưng lần này lại được chứng kiến ở đây, chắc là có huyền cơ gì đó vãn bối chưa rõ nên mạn phép mượn dùng skill casting này trước. Vãn bối ngu muội, xưa giờ đúng là chỉ biết dùng cách “chưa trải sự đời” như sau mà thôi, kính nhờ tiền bối chỉ điểm bến mê:
// Binary Serialization
struct X {
int length;
A data[1];
};
uint8_t receivedData[225] = {20,0,0,0,12,0,0,0,10,0,0,0,22,0,0,0,23,0,0,0,...};
X* x = receivedData;
std::cout << x->length << std::endl;
for (int i = 0; i < x->length; i++) {
std::cout << "A[" << i << "] = " << std::endl;
std::cout << x->data[i].w << std::endl;
std::cout << x->data[i].h << std::endl;
}
Ngoài ra, nếu mà tiền bối e ngại padding, vãn bối có skill “còn chưa bước chân ra khỏi cửa” như sau:
// Binary Serialization
uint8_t receivedData[225] = {20,0,0,0,12,0,0,0,10,0,0,0,22,0,0,0,23,0,0,0,...};
int* length = (int*)(receivedData);
std::cout << *length << std::endl;
A* a = receivedData + sizeof(int);
for (int i = 0; i < *length; i++) {
std::cout << "A[" << i << "] = " << std::endl;
std::cout << a[i].w << std::endl;
std::cout << a[i].h << std::endl;
}