在C中,我是否需要在释放结构时手动释放结构中的指针?

ran*_*eld -2 c memory pointers

我正在学习C中的内存管理.

我有一个指向结构的指针,我malloc通过它来调整大小

some_struct *mystruct = malloc(sizeof(some_struct));
Run Code Online (Sandbox Code Playgroud)

我后来用free在那个结构上.

在这个结构中有三个char *指针; 我也记录了他们的记忆.

在我释放之前我是否还必须释放他们的记忆,*mystruct否则*mystruct还会释放结构中的内存?

DWr*_*ght 5

您还必须释放结构中char*指针指向的内存.先做,然后释放你的结构

但是不要释放结构中的char*指针,如果你指向其他地方的那些char*指针的相同内存(即,如果你已经将你的结构复制到另一个结构实例,那些char*指针需要指向有效记忆).