|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 三刀流.索隆 于 2021-12-21 17:11 编辑
我写的链表,我调试过了,这个链表根本接不上,而且temp和list是同一个指针,这就让人头大了,它们都是用malloc函数单独从堆里面申请的呀,只不过用ptr先后指向它们,它们怎么会是同一个指针
- #include <stdio.h>
- #include <stdlib.h>
- struct Node
- {
- int data;
- struct Node* next;
- }node;
- void add_node(Node** p, int a)
- {
- Node* temp = (Node*)malloc(sizeof(Node));
- temp->data = a;
- temp->next = NULL;
- (*p)->next = temp;
- //无论换成以下哪行代码都不对
- //p = &temp;
- //*p = temp;
- //--------------------------------
- }
- void print_node(Node* p)
- {
- while (NULL != p)
- {
- printf("%d", p->data);
- p = p->next;
- }
- }
- int main()
- {
- int val = 0;
- Node* list = (Node*)malloc(sizeof(Node));
- list->data = 0;
- list->next = NULL;
- Node** ptr = &list;
- do
- {
- scanf_s("%d", &val);
- printf("\n");
- add_node(ptr,val);
- } while (-1 != val);
- print_node(list);
- return 0;
- }
复制代码
本帖最后由 jhq999 于 2021-12-19 16:13 编辑
认真点
- void add_node(Node** head, int a)///////////
- {
- Node* p = (Node*)malloc(sizeof(Node)),temp=*head;///////////
- p->data = a;
- p->next = NULL;//////////
- while(temp->next)temp=temp->next;///////////
- temp->next=p;//////////
- //无论换成以下哪行代码都不对
- //p = &temp;
- //*p = temp;
- //--------------------------------
- }
复制代码
|
|