假设我将 header 存储在某个文件中,但 header 的某些部分是动态长度,看起来像这样:
struct HeaderTest {
int someparam;
int more;
int arrsize; // how big array, read arrsize elements into arr:
int arr[arrsize]; // not valid
};
是否有一些优雅的方法可以将动态数据读入结构?
最佳答案
您可以像这样定义您的结构,而不是在您的结构中使用 arr
和 arrsize
变量:
struct HeaderTest
{
int someparam;
int more;
std::vector<int> data;
}
没有 arr,没有 arrsize。只需使用 std::vector
和 std::vector::size()
。这很优雅!
如果你想从一个文件中读取二进制数据,那么你可以这样写:
struct HeaderTest
{
int someparam;
int more;
int size;
char *data;
}
否则,使用第一个结构!
一个建议:
到处看你的评论,我觉得我应该建议你买一本好书,先研究一下。以下是真正好书的 list :
关于C++:如何优雅地将动态数据读入结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4707724/