|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
struct Node *next;
};
typedef struct Node Node;
typedef struct Node *LinkList;
// 单链表的创建
void InitList(LinkList *L) {
LinkList p;
p = (*L);
p = (LinkList)malloc(sizeof(Node));
p->data = "Good";
p->next = NULL;
printf("p->data: %s\n", p->data);
printf("*L->data: %s\n", (*L)->data); // 错误行, 为什么输出(*L)->data会错误呢, p和传递过来的(*L)指向的不是同一个吗
printf("单链表创建成功\n");
return 0;
}
int main() {
LinkList L; // 创建一个头指针
InitList(&L);
printf("L->data: %s", L->data); // 这里也是, 明明传递过去的是头指针的地址啊, InitList函数执行完后, L就会被改变的
return 0;
}
本帖最后由 傻眼貓咪 于 2022-1-28 10:05 编辑
#include <stdio.h>
#include <malloc.h>
typedef struct Node{
int data; // 请记得你声明 data 是整数类型
struct Node* next;
}LinkList;
void InitList(LinkList* L)
{
LinkList *p;
p = (LinkList*)malloc(sizeof(LinkList)); // 注意这里
p->data = 13; // 整数
p->next = NULL;
*L = *p; // 注意这里,顺序
printf("p->data: %d\n", p->data);
printf("L->data: %d\n", L->data); // 注意这里
printf("单链表创建成功\n");
}
int main(){
LinkList head;
InitList(&head);
printf("head.data: %d", head.data); // 注意这里
return 0;
}
|
|