星空爱鱼C 发表于 2020-9-17 14:06:23

输出结果正确,但会提示框框

#include"stdafx.h"
#include"malloc.h"
struct student//声明一个结构体
{
      int num;
      int name;
      struct student *next;
};
typedef struct student   ppt;//取别名
ppt *jiao();
ppt*jiao()//创建这个结点
{
      ppt *head, *zhong, *wei;
      wei = (ppt *)malloc(sizeof(ppt));//开辟内存
      zhong = wei;
      scanf_s("%d,%d", &zhong->num, &zhong->name);//输入数据,中间用逗号隔开

      int n;
      n = 0;
      head = NULL;
      while (wei->num)//当输入数据num不为0的话执行,反之不符合要求,停止结点创建12
      {
                n = n + 1;
                if (n == 1)//第一个结点
                {
                        head = zhong;
                }
                else
                {
                        zhong->next = wei;
                        zhong = wei;
                }
                wei = (ppt *)malloc(sizeof(ppt));//创建第二个结点及以上
                scanf_s("%d,%d", &wei->num, &wei->name);//继续输入数据


      }
      zhong = NULL;//最后一个结点地址
      return head;//返回头结点

}

int main()


{
      ppt *lll;//定义一个指向结构体的指针变量
      lll = jiao();//引用开辟结点函数
      while (NULL!=lll)//循环输出结点
      {
                printf("%d,%d", lll->num, lll->name);//((((输出后有点小问题,结果没什么问题,但放在程序上运行那就出现大问题;))))
                lll = lll->next;
      }
      free(lll);//释放内存空间
      return 0;//运行后结果正确出现了一个错误框架东西,看看你们电脑会不会出错,麻烦各位大哥了,我怀疑我电脑出问题。



}

xieglt 发表于 2020-9-17 14:44:54

#include"stdafx.h"
#include"malloc.h"
struct student//声明一个结构体
{
      int num;
      int name;
      struct student *next;
};
typedef struct student   ppt;//取别名
ppt *jiao();
ppt*jiao()//创建这个结点
{
      ppt *head, *zhong, *wei;
      wei = (ppt *)malloc(sizeof(ppt));//开辟内存
      //将next 赋值 null
      wei->next = NULL;
      zhong = wei;
      scanf_s("%d,%d", &zhong->num, &zhong->name);//输入数据,中间用逗号隔开

      int n;
      n = 0;
      head = NULL;
      while (wei->num)//当输入数据num不为0的话执行,反之不符合要求,停止结点创建12
      {
                n = n + 1;
                if (n == 1)//第一个结点
                {
                        head = zhong;
                }
                else
                {
                        zhong->next = wei;
                        zhong = wei;
                }
                wei = (ppt *)malloc(sizeof(ppt));//创建第二个结点及以上
               //将next 赋值 null
                wei->next = NULL;
                scanf_s("%d,%d", &wei->num, &wei->name);//继续输入数据


      }
      zhong = NULL;//最后一个结点地址
      return head;//返回头结点

}

int main()


{
      ppt *lll;//定义一个指向结构体的指针变量
      lll = jiao();//引用开辟结点函数
//      因为next 没有赋值null , 因此这是个死循环,到了最后一个节点其实是访问到了非法内存地址异常退出
      while (NULL!=lll)//循环输出结点
      {
                printf("%d,%d", lll->num, lll->name);//((((输出后有点小问题,结果没什么问题,但放在程序上运行那就出现大问题;))))
                lll = lll->next;
      }
      free(lll);//释放内存空间
      return 0;//运行后结果正确出现了一个错误框架东西,看看你们电脑会不会出错,麻烦各位大哥了,我怀疑我电脑出问题。



}
页: [1]
查看完整版本: 输出结果正确,但会提示框框