此结构应该具有队列中每个项目的信息。
struct tx_queue_item_t
{
//user input
uint8_t priority;
uint8_t attempts;
uint8_t* buff;
size_t size;
uint32_t timeout; //10ms base
//system input
uint8_t idNum;
uint8_t attemptCount;
uint32_t tickCountAtTx; //to check for receive timeout
enum tx_queue_status_t status;
} ;
我想知道我是否能够拥有'临时项目'(临时结构),当队列中的此类项目被视为已完成/已处理时,它们会释放自己的内存使用。
有没有办法在C语言中做到这一点? malloc?考虑到我还想按每个结构实例的名称来访问变量的值。并且为了使我能知道用于此目的的总内存(创建临时项)。
问候
没有C没有广泛实现的垃圾收集器。您可以使用外部库,例如boehm-gc,但这可能不是您想要的。
最可移植的解决方案是手动使用malloc
和free
,或使用函数创建和破坏您的结构。