32060049 2015-11-29 01:45 采纳率: 94.4%
浏览 1873
已采纳

C语言动态链表建立问题

#include
#include
#define LEN sizeof(struct Student)

int n = 0;//记录数据的个数

struct Student
{
    int number;
    int score;
    struct Student *next;
};


int main()
{
    struct Student *creat(void);
    void print(struct Student *p);
    struct Student *p;
    p = creat();
    print(p);
    return 0;
}


struct Student *creat(void)
{
    struct Student *p1,*p2;
    struct Student *head = NULL;
    p1 = p2 = (struct Student *)malloc(LEN);
    printf("please enter Students' informations(number & score:)");
    scanf("%d %d",&p1->number,&p1->score);//get
    while(p1->number != 0)
    {
        n += 1;
        if(n==1)head = p1;
        else p2->next = p1;
        p2 = p1;
        printf("please enter Students' informations(number &score):");
        scanf("%d %d",p1->number,p1->score);
        p1 = (struct Student*)malloc(LEN);

    }
   p2->next = NULL;
   return (head);
};


void print(struct Student *p)
{
    printf("their informations as follows:\n");
    while(p->number!=0)
    {
        printf("%d %d",p->number,p->score);
        p = p->next;
    }
}

代码如上,运行后输入第二个数据后显示“该内存不能为written”,用的是CODEBLOCKS。卡在这一天了,求解答,万分感谢~

  • 写回答

4条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 unity 使用 Vuforia 导入Model target 成功后database下拉菜单不显示导入的内容
      • ¥15 VBA跨工作簿获取目标工作簿内已有数据的列号
      • ¥30 Dijkstra‘s 最短路径
      • ¥15 在线教育培训平台,主要以点播视频和在线练习测试为主,除将视频做切片外,有其他哪种方式降低流量?(关键词-带宽速率)
      • ¥20 用c语音或c++实现银行叫号系统
      • ¥15 人工智能 规则正向演绎和推理
      • ¥20 基于STM32F401的电子密码锁设计
      • ¥15 famamacbeth回归中遇到only size-1 arrays can be converted to Python scalars,求解答
      • ¥15 单片机多个自锁按键的编程实践
      • ¥15 用python操作redis存储中文后,再取出的数据变成了乱码怎么办?