Erreur convertion chaîne (C) [Résolu/Fermé]

Signaler
Messages postés
447
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
1 octobre 2014
-
Messages postés
447
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
1 octobre 2014
-
Bonjour,

Je requiert votre aide pour une erreur qui m'est incompréhensible :
La ligne de code :
tableauConnections[i].contact = strdup(tableauConnections[nbnbnb +1].contact);


Me renvoie l'erreur suivante :
generateur.cpp|294|error: incompatible types in assignment of 'char*' to 'char [20]'|


Comment deux éléments d'un tableau peuvent-ils être d'un type différent? Ou alors c'est la fonction qui renvoie une type différent?

Mais surtout comment résoudre cette erreur?

Merci d'avance,
Sheeps.

2 réponses

Bonjour

Ce ne sont pas deux éléments d'un tableau qui sont de type différent.
D'un côté, tu as un élément d'un tableau
De l'autre, ce que te renvoie strdup, c'est à dire un char * (regarde la définition de strdup). Si l'élément de tableau est un char[20], c'est totalement inenvisageable de mettre dedans un pointeur.
Je suppose qu'en fait tu voulais recopier un élément de tableau dans un autre : ce n'est pas le rôle de strdup. Je crois que tu aurais dû faire :
strncpy(tableauConnections[i].contact ,tableauConnections[nbnbnb +1].contact,sizeof(tableauConnections[i].contact));
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
447
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
1 octobre 2014
10
Simple, concis, efficace. Le père est un dieu (Ca vient de la "Dieu le père"?)

Bref merci beaucoup (encore une fois) =)