照着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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
- ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
- ¥15 python爬取bilibili校园招聘网站
- ¥30 求解达问题(有红包)
- ¥15 请解包一个pak文件
- ¥15 不同系统编译兼容问题
- ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
- ¥30 数字电源对DSP芯片的具体要求