Erreur convertion chaîne (C)

Résolu/Fermé
cap'tain sheeps Messages postés 447 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 1 octobre 2014 - 24 juin 2011 à 08:57
cap'tain sheeps Messages postés 447 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 1 octobre 2014 - 24 juin 2011 à 09:23
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.

A voir également:

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
cap'tain sheeps Messages postés 447 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 1 octobre 2014 10
24 juin 2011 à 09:23
Simple, concis, efficace. Le père est un dieu (Ca vient de la "Dieu le père"?)

Bref merci beaucoup (encore une fois) =)
0