gpt4 book ai didi

c - 我们如何释放携带指向某个位置的指针的节点内存

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:02 25 4
gpt4 key购买 nike

我有一个链接列表,其节点结构如下所示

  struct node
{
char *p;
struct node *next;
}*start;

现在我们 char *p 是指向由 malloc 调用分配的内存位置的指针。同样,整个也是使用 malloc 分配的。现在想释放两个 malloc 调用占用的空间,如下所示

  main()
{
struct node *tmp;
tmp=malloc(sizeof(struct node));
tmp->next=NULL;
tmp->p=malloc(2*sizeof(int));

free(tmp->p);
free(tmp);

}

这是释放内存的正确方法还是这里需要什么?

最佳答案

这是正确的方法,但不要忘记在使用 free 后将指针赋值给 NULL,否则指针将变成悬挂指针。

像这样使用它们 -

免费(tmp->p);tmp->p = NULL;

关于c - 我们如何释放携带指向某个位置的指针的节点内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8515771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com