当我根本不知道问题是什么时,我不知道如何提出问题,因为我还是C中链表的新东西,无论如何这是我的代码
#include <stdio.h>
#include <stdlib.h>
typedef struct Element{
int val;
struct Element* suivant;
}Element;
Element* initialiserListe(Element* L){
L = NULL;
return L;
}
Element* nouveau;
Element* insererEnTete(Element* L){
nouveau = (Element*)malloc(sizeof(Element));
if(L == NULL) printf("initialisation : ");
printf("donner une valeur : ");
scanf("%d", &nouveau->val);
nouveau->suivant = L;
return nouveau;
}
int listeVide(Element* L){
return L == NULL;
}
void affichageListe(Element* L){
if(listeVide(L)) printf("liste vide");
else{
Element* temp = L;
while(temp != NULL){
printf("%d", temp->val);
temp = temp->suivant;
}
}
}
int main()
{
printf("Hello world!\n");
Element *L = NULL;
initialiserListe(L);
insererEnTete(L);
affichageListe(L);
return 0;
}
我想知道的是为什么它打印&#34;倾听视频&#34;什么时候应该打印列表中的val
答案 0 :(得分:1)
您需要在主函数中将函数调用的返回值分配给L
:
...
int main()
{
printf("Hello world!\n");
Element *L = NULL;
L = initialiserListe(L);
L = insererEnTete(L);
L = affichageListe(L);
return 0;
}
答案 1 :(得分:0)
您不需要使用“initialiserListe”函数初始化L,因为您已经在main函数中初始化它,并且您的代码将被编辑为如下所示:
int main()
{
printf("Hello world!\n");
Element *L = NULL;
L = insererEnTete(L);
affichageListe(L);
return 0;
}