C 我需要释放结构中的变量吗?

C 我需要释放结构中的变量吗?,c,memory,struct,C,Memory,Struct,我创建了一个结构,其中包含一个变量。结构如下所示: 类型定义结构ABC{ int x; }ABC; 现在我想释放整个结构,我需要先释放变量吗 ABC*p=mallocsizeofABC; p->x=10; 免费&x;//需要这一步吗? 弗里普; p=零; 假设你的意思是p->x而不是x 绝对不是。这不仅是不必要的,也是错误的。无法释放以前分配的指针以外的内容。字段x是一个整数。就这么简单。换句话说,为了能够释放某些东西,您必须首先分配它。这不是C代码,请注意标记的内容。你的代码也不会编译。始终提

我创建了一个结构,其中包含一个变量。结构如下所示:

类型定义结构ABC{ int x; }ABC; 现在我想释放整个结构,我需要先释放变量吗

ABC*p=mallocsizeofABC; p->x=10; 免费&x;//需要这一步吗? 弗里普; p=零; 假设你的意思是p->x而不是x


绝对不是。这不仅是不必要的,也是错误的。无法释放以前分配的指针以外的内容。字段x是一个整数。就这么简单。换句话说,为了能够释放某些东西,您必须首先分配它。

这不是C代码,请注意标记的内容。你的代码也不会编译。始终提供实际代码。免费分配您分配的代码。不要释放你没有分配的东西。您分配了内存并将指向它的指针分配给了p。通过释放p来释放内存。您没有为x单独分配内存,因此不要为x单独释放内存。
free(&p->x);   // Is this step needed?