标题:突然想到,于是写了一段代码,但是……完全想不到该怎么释放内存
只看楼主
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
结帖率:95.65%
已结贴  问题点数:20 回复次数:1 
突然想到,于是写了一段代码,但是……完全想不到该怎么释放内存
这代码就是突然间想到,然后……写了这么一段,所以请不要在意它是干什么的。

程序代码:
#include <stdio.h>
#include <stdlib.h>
struct shuzi {
             int n;
             int count;
             struct shuzi * p;
              };
struct shuzi * digui(int n,struct shuzi *q);
void PRINTF(struct shuzi *p);

int main(void)
{
    struct shuzi *q;
    int n;
    q = NULL;

    while(scanf("%d",&n) == 1)
        q = digui(n,q);
    PRINTF(q);
    return 0;
}
struct shuzi * MALLOC(void);
struct shuzi * digui(int n,struct shuzi *q)
{
    if(q == NULL)
    {
          q = MALLOC();
          q->n = n;
          q->count = 1;
          q->p = NULL;
    }
    else if(q->n == n)
        q->count++;
    else
        q->p = digui(n,q->p);

    return q;
}

struct shuzi * MALLOC(void)
{
    return (struct shuzi *)malloc(sizeof(struct shuzi));
}

void PRINTF(struct shuzi *p)
{
    if(p != NULL)
    {
       PRINTF(p->p);
       printf("%d %d\n",p->n,p->count);
    }
}


[此贴子已经被作者于2017-2-14 23:17编辑过]

搜索更多相关主题的帖子: color 干什么 和田玉 count 种类 
2017-02-14 23:16
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:20 
用free不行么~


程序代码:
void my_free(Node* head)
{
    Node* p=head;
    
    if (head==NULL)
        return ;

    while (p->next)
    {
        p=p->next;
        free(head);
        head=p;
    }

    free(head);
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-02-15 00:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-474226-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.095359 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved