Erreur: incompatible types assignement en C
groomer
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans le cadre d'un projet je suis bloqué sur une erreur de d'incompatibilité de type:
svp aidez moi !
L'erreur :
t.nom=nomSaisi; incompatible types assignement
Pourtant j'ai l'impression de mettre un char nomSaisi[51] dans char nom[51]
Dans le cadre d'un projet je suis bloqué sur une erreur de d'incompatibilité de type:
svp aidez moi !
L'erreur :
t.nom=nomSaisi; incompatible types assignement
Pourtant j'ai l'impression de mettre un char nomSaisi[51] dans char nom[51]
typedef struct personne{ //declaration de la structure personne char nom[51]; //declaration du tableau nom de 50 char tel[11]; //declaration du tableau tel struct personne *suivant; struct personne *precedent; }pers; //fonction ajouter entree pers ajoutEntree(){ char nomSaisi[51]; char numeroSaisi[11]; //creation de l'entree t pers t; //demande du nom et du tel printf("saisir le nom:"); scanf("%c",nomSaisi); //recuperation clavier du nom printf("saisir le numero:"); scanf("%c",numeroSaisi); //reccuperation clavier du numero t.nom=nomSaisi; //on charge dans l'entree le nom t.tel=numeroSaisi; return t; }
A voir également:
- Erreur: incompatible types assignement en C
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Comment recuperer whatsapp supprimé par erreur - Guide
2 réponses
Bonjour,
Non, tu mets un pointeur dans un tableau
(un char* dans un char [51])
Il faut utiliser la fonction strncpy (pas strcpy elle peut déborder)
strncpy(t.nom, nomSaisi, 51);
cela copie la chaine de caracteres de nomSaisi dans t.nom
Non, tu mets un pointeur dans un tableau
(un char* dans un char [51])
Il faut utiliser la fonction strncpy (pas strcpy elle peut déborder)
strncpy(t.nom, nomSaisi, 51);
cela copie la chaine de caracteres de nomSaisi dans t.nom
+1 pour Droopy_.
Je rajouterai également qu'avec : scanf("%c",nomSaisi)</ital tu rajouterais qu'un caractère. C'est pas ce que tu veux (enfin je pense ^^).
Utilise plutôt : <ital>fgets(nomSaisi,sizeof nomSaisi,stdin ;)
Par ailleurs, c'est dommage de gaspiller deux tableaux pour ça. Tu peux très bien faire fgets(t.nomSaisi, sizeof(t.nomSaisi),stdin); ;)
Cdlt
Je rajouterai également qu'avec : scanf("%c",nomSaisi)</ital tu rajouterais qu'un caractère. C'est pas ce que tu veux (enfin je pense ^^).
Utilise plutôt : <ital>fgets(nomSaisi,sizeof nomSaisi,stdin ;)
Par ailleurs, c'est dommage de gaspiller deux tableaux pour ça. Tu peux très bien faire fgets(t.nomSaisi, sizeof(t.nomSaisi),stdin); ;)
Cdlt