注册 登录
编程论坛 C语言论坛

数据链表问题,一堆报错不知如何才能解

暴君Dentiny 发布于 2019-09-23 13:16, 2798 次点击
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define len 20
struct student
{
    char* name;
    struct student* next;
};
struct student* ctrn()
{
    char max[len],a;
    struct student * p, * hard, * next;
    p = (struct student*)malloc(sizeof(char));
    gets_s(max, len);
    strcpy(p->name, max);
     
    printf("是否继续输入(y/n):");
    scanf_s("%c", &a);
    while (a = 'y')
    {
        next= (struct student*)malloc(sizeof(char));
        gets_s(max, len);
        strcpy(next->name, max);
        next= next->next;
        if (a == 'n')
        {
            next->next= NULL;
            break;
            
        }
    }
    p->next = next;
    hard = p;
    while (1)
    {
        printf("%d", p->name);
        p = p->next;
        if (p->next != NULL)
        {
            break;
        }
    }

程序代码:
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C4703     使用了可能未初始化的本地指针变量“next”    Project1    G:\c文件\Project1\Project1\源.c    33   
警告    C6064    缺少“scanf_s”的整型参数(对应于转换说明符“2”)。    Project1    G:\C文件\PROJECT1\PROJECT1\源.C    19   
警告    C6011    取消对 NULL 指针“next”的引用。    Project1    G:\C文件\PROJECT1\PROJECT1\源.C    24   
警告    C6001    使用未初始化的内存“next”。    Project1    G:\C文件\PROJECT1\PROJECT1\源.C    33   
警告    C6011    取消对 NULL 指针“p”的引用。    Project1    G:\C文件\PROJECT1\PROJECT1\源.C    39   
警告    C6282    运算符不正确: 在 Boolean 上下文中执行了常量赋值。应考虑改用“==”。    Project1    G:\C文件\PROJECT1\PROJECT1\源.C    39   
警告    C4473     “scanf_s”: 没有为格式字符串传递足够的参数    Project1    G:\c文件\Project1\Project1\源.c    19   
   

只有本站会员才能查看附件,请 登录
1 回复
#2
ZJYTY2019-09-23 14:46
1、建议指针初始化;
2、注意一下scanf_s()的用法;
3、注意逻辑判断的正确性;
1