不带头节点单链表中,第一个节点的打印问题
我又来求助万能的鱼油了无头节点的单链表中,第一个位置插入的元素在主函数中打印出来的是一串数字。。。但是在insertList函数结束前打印出来的结果却是正确的。
多插入几个数字测试之后,后面的数字都能够正常显示,就只有第一个数字显示一堆数字(应该不是传值的问题吧...)
初学数据结构,脑袋不够用,实在想不到问题出在哪里{:10_285:}
望不吝赐教!!!
涉及代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef struct lNode {
int data;
struct lNode *next;
}lNode, linkList;
int initList(linkList *L) { // 初始化单链表(无头节点)
L = NULL;
return 1;
}
int listInsert(linkList *L, int i, int e) {
if (i == 1) { // 在第一个位置插入节点
lNode *s = (lNode *)malloc(sizeof(lNode));
s->data = e;
s->next = L;
L = s;
// ********在这里打印L->data确实是等于1************
return 1;
}
}
int main() {
linkList L;
initList(&L);
listInsert(&L, 1, 1);
printf("%d\n", L.data); // ********这里pirntf出来结果是一堆数字***********
return 0;
}
L是指针的指针呀 改成这样
*L = *s; 万千只cnm 发表于 2021-8-9 21:42
L是指针的指针呀
有点不太明白,能麻烦您细说吗?{:10_266:}写的是纯C语言,好像不能直接用&传值,现在搞那么多指针人都傻了。。。 大马强 发表于 2021-8-9 22:07
改成这样
懵懵懂懂好像有点悟了...看来还是得把基础知识打牢固才行,指针这一块总是出问题。。。{:10_243:}
页:
[1]