鱼C论坛

 找回密码
 立即注册
查看: 2063|回复: 1

[已解决]求大佬们解答, 单链表方面的

[复制链接]
发表于 2022-1-27 17:38:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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-27 22:46:52
本帖最后由 傻眼貓咪 于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-27 22:46:52 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +3 鱼币

本帖最后由 傻眼貓咪 于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 21:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表