qq_48908877 2022-09-17 19:28 采纳率: 33.3%
浏览 16
已结题

我不懂为什么会报错!(语言-c语言)

img


问题遇到的现象和发生背景

用代码块功能插入代码,请勿粘贴截图
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <assert.h>
typedef int SListDataType;
typedef struct SListNode
{
    SListDataType data;
    struct SListNode* next;
}SListNode;


SListNode* CreatSListNode(SListDataType x)
{
    SListNode* Newnode = (SListNode*)malloc(sizeof(SListNode));
    if (Newnode == NULL)
    {
        printf("申请内存失败!");
        exit(-1);
    }
    Newnode->data = x;
    Newnode->next = NULL;
    return Newnode;

}
//void InitSList(SListNode *L)
//{
//    L = (SListNode*)malloc(sizeof(SListNode));
//    L->data = 0;
//    L->next = NULL;
//
//}
SListNode * InitSList()
{
    SListNode* L = (SListNode*)malloc(sizeof(SListNode));
    L->data = 0;
    L->next = NULL;
    return L;
}
void HeadInsertSList(SListNode* L,SListDataType x)
{
    SListNode* Newnode = (SListNode*)malloc(sizeof(SListNode));
    Newnode->data = x;
    Newnode->next = L->next;
    L->next = Newnode;
    L->data++;
}
void TailInsertSList(SListNode* L, SListDataType x)
{

    SListNode* p=CreatSListNode(x);
    SListNode* cur = L;
    while (cur->next != NULL)
    {
        cur = cur->next;
    }
    cur->next= p;
    L->data++;

    

}
void EraseSList(SListNode* L, SListDataType x)
{
    SListNode* pre = L;
    SListNode* cur = L->next;
    while (cur)
    {
        if (cur->data == x)
        {
            pre->next = cur->next;
            free(cur);
        }
        pre = cur;
        cur = cur->next;
    }
}
void PrintSList(SListNode *L)
{
    SListNode* p = L->next;
    while (p!=NULL)
    {
        printf("%d->", p->data);
        p = p->next;
    }
    printf("NULL");
}




int main()
{
    SListNode*  L=InitSList();
    L->next = NULL;
    L->data = 0;
    InitSList(L);
    HeadInsertSList(L, 1);
    HeadInsertSList(L, 2);
    HeadInsertSList(L, 3);
    HeadInsertSList(L, 4);
    TailInsertSList(L, 5);
    TailInsertSList(L, 6);
    TailInsertSList(L, 7);
    TailInsertSList(L, 8);
    EraseSList(L, 3);
    PrintSList(L);


    return 0;
}



运行结果及报错内容

img

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-09-17 19:33
    关注

    显然L->next你没有设置为NULL
    98行编译怎么通过的呢?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月9日
  • 已采纳回答 10月1日
  • 创建了问题 9月17日

悬赏问题

  • ¥15 (有偿)在ANSYS中 .anf文件
  • ¥45 关于#芯片#的问题:组合逻辑电路设计
  • ¥15 基与机器学习和时间序列分析预测养老服务需求趋势
  • ¥100 求连续两帧图像在水平和垂直上偏移
  • ¥15 mysql全文索引查找指定必须关键词word无效
  • ¥15 Verilog hdl密码锁设计
  • ¥35 基于python的有ssl加密传输的socket聊天室
  • ¥15 数码管亮度控制器设计
  • ¥15 kafka客户端跨网段访问,看日志提示连接的还剩内网地址,且访问不通
  • ¥15 关于c语言代码的问题