Problème avec les listes chaînées
Salut tout le monde ...
Je viens de débuter en listes chaînées et au polycopie du prof j'ai voulu vérifier un simple exercice sur l'insertion des éléments et leur affichage ensuite .... Mais à l'exécution il y avait un comportement indéfini
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #include<stdio.h>
#include<string.h>
typedef struct Noeud
{
char mot[15];
struct Noeud *suivant;
}noeud ;
void inser(char s[],noeud *fin)
{
noeud *nouveau;
int i;
nouveau=(noeud*)malloc(sizeof(noeud));
nouveau->suivant = NULL;
for(i=0;i<strlen(s);i++)
nouveau->mot[i]=s[i];
fin->suivant=nouveau;
fin=nouveau;
}
void aff(noeud *p)
{
int i;
while(p!=NULL)
{
for(i=0;i<strlen(p->mot);i++)
printf("%c",p->mot[i]);
p=p->suivant;
}
}
main()
{
noeud *debut,*fin;
char Z[]="faculte";
char ch[15];
int i;
debut=(noeud*)malloc(sizeof(noeud));
for(i=0;i<strlen(Z);i++)
debut->mot[i]=Z[i];
debut->suivant=NULL;
fin=debut;
printf("saisir les mot : \n");
i=0;
do
{
gets(ch);
inser(ch,fin);
i++;
}
while (i!= 3);
aff(debut);
getchar();
} |
Code:
1 2 3 4 5
| saisir les mot :
des
science
info
faculteinfox☺= |
Alors ou est le problème ?
Une autre question au code il y avait comme ça
Code:
debut->mot="faculte";
A la place de ça
Code:
1 2 3
|
char Z[]="faculte";
debut->mot[i]=Z[i]; |
Mais je l'ai changé car il y avait une erreur lors de la compilation
Code:
incompatible types in assignment
Alors pourquoi l'erreur ?