【问题标题】:Dynamically Increase Structure Instances in c在c中动态增加结构实例
【发布时间】:2014-10-23 04:35:28
【问题描述】:

我有一个结构

typedef struct
{
    UINT32 num_pairs;
    UINT32 value;
}
SCSI_ENTRIES;

我需要动态实例化这个结构的对象。

for (int i = 0; i < 50; i++)
{
    if ( port[i] )
    {
        port_valid_count += 1;

        // Please tell me how to instantiate 
        // SCSI_ENTRIES objects dynamically, 
        // based on port_valid_count.

        // Something like SCSI_ENTRIES entries[port_valid_count] ;
    }
}

每次增加 port_valid_count 时,我都需要增加结构的对象。

【问题讨论】:

标签: c


【解决方案1】:

有两种方法可以做到这一点。一个是有 2 个项目,一个固定大小的结构和一个可变大小的空间块来保存数组。结构中的指针将指向可变大小的块;该结构还将保存可变大小块中项目数的计数。另一种方法是使用单个可变大小的空间块来保存 N 个数组项。我建议您搜索并阅读“C 中的可变长度数组”和类似内容。 (这不是一个容易在这里回答的小话题。)

以下是起点: Variable length arrays in structvariable size struct

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多