动态增加c中的结构实例

时间:2014-10-22 20:13:45

标签: c

我有一个结构

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递增时,我都需要增加结构的对象。

1 个答案:

答案 0 :(得分:0)

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

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