我有一个结构
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 增加时,我都需要增加该结构的对象。
最佳答案
有两种方法可以做到这一点。一种是有 2 个项目,一个固定大小的结构体和一个用于保存数组的可变大小的空间 block 。结构中的指针将指向可变大小的 block ;该结构还将保存可变大小块中的项目数。另一种方法是使用单个可变大小的空间 block 来容纳 N 个数组项。我建议您搜索并阅读“C 中的可变长度数组”和类似内容。 (这不是一个容易在这里回答的小话题。)
以下是出发点: Variable length arrays in struct和 variable size struct .
关于c - c中动态增加结构体实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26516293/