我有一个结构
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递增时,我都需要增加结构的对象。
答案 0 :(得分:0)
有两种方法可以做到这一点。一个是拥有2个项目,一个固定大小的结构和一个可变大小的空间块来保存数组。结构中的指针指向可变大小的块; struct还将保存可变大小块中的项数。另一种方法是使用单个可变大小的空间块来容纳N个数组项。我建议你搜索并阅读'C中的可变长度数组'和类似的内容。 (这不是一个很容易在这里回答的小话题。)
以下是出发点: Variable length arrays in struct和variable size struct。