gpt4 book ai didi

c - c中动态增加结构体实例

转载 作者:行者123 更新时间:2023-11-30 20:39:30 26 4
gpt4 key购买 nike

我有一个结构

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 structvariable size struct .

关于c - c中动态增加结构体实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26516293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com