oasis_is 2020-06-26 12:30 采纳率: 0%
浏览 160

求教一下关于链表的输入

求教一下关于链表的输入;

#include<stdio.h>
#include <malloc.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#define LEN sizeof(struct Student)
int c_num()
{
    static int i = 1; int a;
    a = 2019051000 + i;
    i = i + 1;
    return a;
}

struct Student
{
    int num;
    struct Student* next;
};
int n;
struct Student* creat(void)
{
    struct Student* head;
    struct Student* p1, * p2;
    n = 0;
    p1 = p2 = (struct Student*)malloc(LEN);
    p1->num = 2019051110;
    //scanf("%d", &p1->num);
    head = NULL;
    while (p1->num != 0)
    {
        n = n + 1;
        if (n == 1)head = p1;
        else p2->next = p1;
        p2 = p1;
        p1 = (struct Student*)malloc(LEN);
        p1->num = c_num();
        //scanf("%d", &p1->num);
    }
    p2->next = NULL;
    return (head);
}
int main()
{
    struct Student* pt;
    pt = creat();
    printf("num=%d", pt->num);
}

为什么这样会有nullptr的报错,而使用//里的scanf函数就没有问题?
请各位不吝赐教

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-06-26 16:00
    关注

    2019051000
    这个数字太大,超过int范围
    学号、电话、邮政编码、身份证号等这些虽然是数字,但是不参与四则运算的(两个学号相加相减没有意义),应该使用字符串表示。

    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决