C++:如何优雅地将动态数据读入结构?

标签 c++ windows dynamic-data

假设我将 header 存储在某个文件中,但 header 的某些部分是动态长度,看起来像这样:

struct HeaderTest {
    int someparam;
    int more;
    int arrsize;      // how big array, read arrsize elements into arr:
    int arr[arrsize]; // not valid
};

是否有一些优雅的方法可以将动态数据读入结构?

最佳答案

您可以像这样定义您的结构,而不是在您的结构中使用 arrarrsize 变量:

struct HeaderTest 
{
    int someparam;
    int more;
    std::vector<int> data;
}

没有 arr,没有 arrsize。只需使用 std::vectorstd::vector::size()。这很优雅!

如果你想从一个文件中读取二进制数据,那么你可以这样写:

struct HeaderTest 
{
    int someparam;
    int more;
    int size;
    char *data;
}

否则,使用第一个结构!


一个建议:

到处看你的评论,我觉得我应该建议你买一本好书,先研究一下。以下是真正好书的 list :

The Definitive C++ Book Guide and List

关于C++:如何优雅地将动态数据读入结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4707724/

相关文章:

c# - 链接按钮动态显示 GridView asp.net

.net - ASP.net MVC 项目是否支持添加动态数据?

c# - Entity Framework 的动态数据 : Bulk editing rows

c++ - 程序失败。 sharedPtr vector C++

c++ - 魔鬼 iluErrorString() 导致访问冲突

windows - 防止已安装的应用程序在静默安装期间启动

php - PDO 异常 "Could not find driver"(pgsql)

c++ - 如何设置 VSCode 以使用适用于 Windows 的 Visual C++ 构建工具

c++ - 具有未定义第二维的二维数组

c - 批处理文件启动但在 c 中启动时命令不运行