照着C primer plus上写的,稍微修改了一些,如果不把主函数里三个指针初始化一下,VS一直会报错
4条回答 默认 最新
- qzjhjxj 2022-09-10 19:35关注
初始化函数() 和 建立链表函数() 里,形参都是值传递的,函数里做的工作,都没有反馈给它的上一级,工作都白做了。修改如下,供参考:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node* next; }; void init_linklist(struct Node** p) //修改 *p { (*p) = (struct Node*)malloc(sizeof(struct Node));//修改 (*p)->next = NULL; //修改 } void create_linklist(struct Node** p1) //,struct Node* p2,struct Node* p3) //修改 //p1为头指针,p2为申请的新指针 { struct Node* p2 = NULL, * p3 = NULL; //修改 int flag = 1, i = 1; while (flag != 0) { init_linklist(&p2); if ((*p1) == NULL) { (*p1) = p2; } else { p3->next = p2; } p3 = p2; printf("请输入数据:"); scanf("%d", &p2->data ); //scanf("%d", p2->data );//修改 printf("\n是否继续输入:[1.继续] [0.退出]"); scanf("%d", &flag); if (flag == 0) { p2->next = NULL; break; } } } void print(struct Node* L) { struct Node* p = L; while (p){ printf("%d ",p->data); p = p->next; } printf("\n"); } int main() { struct Node* phead=NULL; struct Node* current=NULL; struct Node* pmove=NULL; create_linklist(&phead); //, current, pmove); //修改 print(phead); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀