【问题标题】:Freeing allocated memory of a nested structure释放嵌套结构的分配内存
【发布时间】:2022-10-14 15:55:03
【问题描述】:

我有一个格式的嵌套结构:

typedef struct {
    int sensoridentification;
    double time;
    double velocity;
    double acceleration;
} Packet;

typedef struct{
    int sensor_ID;
    int number_of_messages;
    SensorPacket **messages_from_array;
} Node; 

我已经有了一个系统,它将持续分配内存并将数据从标准输入添加到结构成员,直到传入字符串“end”。

当我收到关键字“end”时,是否有一个简单的函数可以递归释放分配给这个嵌套结构的内存?

【问题讨论】:

  • 想想你将如何迭代这个结构。这就是你的答案。
  • SensorPacket 应该是 Packet...最好的朋友...
  • 为什么是双指针?

标签: c struct malloc free


【解决方案1】:
typedef struct {
    int sensoridentification;
    double time;
    double velocity;
    double acceleration;
} Packet;

typedef struct{
    int sensor_ID;
    size_t number_of_messages;
    Packet messages_from_array[];
} Node; 

由于我没有看到双指针的任何理由,您可以使您的生活更轻松,更简单地使用灵活的数组成员。只需要一次分配(和免费)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    相关资源
    最近更新 更多