繁体   English   中英

C - 具有 memory 分配的临时结构

[英]C - Temporary struct with memory allocation

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

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;
};

我想知道我是否能够拥有“临时项目”(临时结构),当队列中的此类项目被视为已完成/已处理时,它们会释放自己的 memory 使用量。

有没有办法在 C 中做到这一点? malloc ? 考虑到我还想通过每个结构实例的名称访问变量的值。 而且为了让我知道用于此目的的总 memory 是多少(创建临时项目)。

问候。

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

最便携的解决方案是使用malloc并手动free ,或使用 function 创建和破坏您的结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM