Erreur convertion chaîne (C)

Résolu
cap'tain sheeps Messages postés 491 Statut Membre -  
cap'tain sheeps Messages postés 491 Statut Membre -
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

  1. 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
  2. cap'tain sheeps Messages postés 491 Statut Membre 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