C-具有内存分配的临时结构

问题描述 投票:0回答:1

此结构应该具有队列中每个项目的信息。

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 memory-management struct queue malloc
1个回答
0
投票

没有C没有广泛实现的垃圾收集器。您可以使用外部库,例如boehm-gc,但这可能不是您想要的。

最可移植的解决方案是手动使用mallocfree,或使用函数创建和破坏您的结构。

© www.soinside.com 2019 - 2024. All rights reserved.