【问题标题】:C Dynamic Structures and MembersC 动态结构和成员
【发布时间】:2021-01-25 07:38:55
【问题描述】:

目前我正在为一个结构动态分配内存,之后我正在为它的一个成员动态分配内存。我的问题是我应该也释放成员,还是只释放结构以及为什么?

#include <stdlib.h>

struct test{
  char *test_member;
};

int main(){

  struct test *new_test;

  // Allocating memory for structure and its member
  new_test = (test*)malloc(sizeof(test));
  new_test->test_member = (char*)malloc(80);

  // Freeing struct member and struct
  free(new_test->test_member);
  free(new_test);

  return 0;
}

【问题讨论】:

标签: c data-structures dynamic


【解决方案1】:

由于结构体中的变量是分配的,所以需要先释放它们,然后释放结构体。

这与二维数组 A 的动态分配相同。当你想释放 'A' 时,你需要先释放 A[i] 然后释放 A 以防止内存泄漏..

所以你的代码是正确的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多