凌域 2023-03-20 15:15 采纳率: 70%
浏览 29
已结题

C语言链表创建方面问题

下图为一个创建链表程序,我想询问下为何我对一个结点赋值后程序就自动结束了?如下图

img

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>

struct _node{
    int num;
    char name[10];
    char a[10];
    int age;
    struct _node *next;
};

struct _node* create()
{
    struct _node* head=(struct _node*)malloc(sizeof(struct _node));
    head->num=0;
    head->name[10]="0";
    head->a[10]="0";
    head->age=0;
    head->next=NULL;
    struct _node* pcurrent=head;
    while(1)
    {
        int number,ag;
        char na[10],b[10];
        printf("请输入学号\n");
        scanf("%d",&number);
        printf("请输入姓名\n");
        scanf("%s",na);    
        printf("请输入性别\n");
        scanf("%s",b);    
        printf("请输入年纪");
        scanf("%d",&ag);
        if(number==0||na[10]=="0"||b[10]=="0"||ag==0)
        {
            return head;
        }
        struct _node *newnode=(struct _node*)malloc(sizeof(struct _node));
        newnode->num=number;
        strcpy(newnode->name[10],na[10]);
        strcpy(newnode->a[10],b[10]);
        newnode->age=ag;
        pcurrent->next=newnode;
        pcurrent=pcurrent->next;
    }
    pcurrent=head->next;
    printf("输出已经赋值的链表");
    while(pcurrent!=NULL)
    {
        printf("%d",pcurrent->num);
        pcurrent=pcurrent->next;
    }
    return head;    
    
};
    
    
int main()
{
        struct _node *head=create();    
        
}
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-03-20 15:19
    关注

    看返回值是崩溃了,na[10]=="0"||b[10]=="0" 这都是越界访问。字符串判断相等用strcmp(na,"0") == 0这样子
    strcpy也用的不对,改为
    strcpy(newnode->name,na);
    na[10]是访问na数组的第10个元素,首先类型是char,不是数组或指针类型;其次第10个元素越界了

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

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 创建了问题 3月20日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看