Erreur convertion chaîne (C)

Résolu
cap'tain sheeps Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   -  
cap'tain sheeps Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   -
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

le père
 
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   Statut Membre Dernière intervention   10
 
Simple, concis, efficace. Le père est un dieu (Ca vient de la "Dieu le père"?)

Bref merci beaucoup (encore une fois) =)
0