夜雨&(* 2022-04-19 15:15 采纳率: 88.9%
浏览 38
已结题

我这个释放空间的写法对吗


typedef struct Account
{
        char cardNum[17];
        char password[7];
        char userName[10];
        char balance[20];
        struct Account* next;
}LIST;
LIST* head=NULL;
LIST* p = NULL;


void initialize() {
        FILE* fp;
        LIST* tail,*temp;
        head = (LIST*)malloc(sizeof(LIST));
        tail = head;
        p = head;

        if ((fp = fopen("D:\\华软2021-2022\\c2\\ATM模拟机\\accounts.txt", "r")) == NULL) {
                printf("文件打开错误");
                exit(0);
        }

        while (1) {
                temp = (LIST*)malloc(sizeof(LIST));
                fscanf(fp, "%s\t%s\t%s\t%s\n", temp->cardNum, temp->password, temp->userName, temp->balance);
                temp->next = NULL;
                tail->next = temp;
                tail = temp;
                if (feof(fp)) {
                        break;
                }
        }
        fclose(fp);
}


//释放空间
void freeSpace() {
        LIST* temp = p->next;
        while (temp!=NULL) {
                p = temp->next;
                free(temp);
                temp = p;
        }
}

展开全部

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-04-20 01:28
    关注

    供参考:

    //释放空间
    void freeSpace(LIST* head) {
    
        while (head != NULL) {
            LIST* temp = head;
            head = head->next;
            free(temp);
            //temp = p;
        }
        head = NULL;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月20日
  • 创建了问题 4月19日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部