【发布时间】:2009-06-19 13:39:39
【问题描述】:
我需要制作一个包含标头、尾标和可变长度有效负载字段的数据包。到目前为止,我一直在使用向量作为有效载荷,所以我的结构是这样设置的:
struct a_struct{
hdr a_hdr;
vector<unsigned int> a_vector;
tr a_tr;
};
当我尝试访问向量的成员时,我遇到了一个段错误,整个结构的 sizeof 给了我 32(在我向向量添加了大约 100 个元素之后。
这是一个好方法吗?什么比较好?
我找到了这篇文章 Variable Sized Struct C++ 他使用的是 char 数组,而我使用的是向量。
【问题讨论】:
-
能否请您提供更多代码。您如何创建和访问您的结构等?
-
您应该注意,您的数据包的内存不是连续的,因为您使用的是向量。因此,例如,如果您不自己序列化它,就无法对其进行 memcpy 或通过网络将其输出。
标签: c++ data-structures packets