马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
//--------------------------------
}
|