【发布时间】:2019-09-01 15:03:00
【问题描述】:
我创建了一个结构,其中包含一个变量。该结构如下所示:
typedef struct ABC {
int x;
} ABC;
现在我想释放整个结构,我需要先释放变量吗?
ABC *p = malloc(sizeof(ABC));
p->x = 10;
free(&x); // Is this step needed?
free(p);
p = NULL;
【问题讨论】:
-
这不是 C# 代码,请注意标记的内容。您的代码也无法编译。始终提供实际代码。
-
释放您分配的内容。不要释放你没有分配的东西。您分配了内存并将指向它的指针分配给
p。通过释放p来释放内存。你没有为x单独分配内存,所以不要单独为x释放内存。