Incompatible types in assignment
Bonjour à tous,
J'ai un léger problème : Je n'arrive pas à attribuer un int à un autre int. Tout simplement. Je ne sais pas à quoi c'est due, puisque je ne pense pas faire d'erreur dans mon code, mais je me trompe peut-être...
Voici mon code :
Ma structure :
Code:
1 2 3 4 5 6 7 8 9
|
struct InfoTrait
{
ZoneExitDerivation_str zoneDerivation_str; /* zone de
communication avec lexit dérivation*/
ZoneExitAccueil_str zoneAccueil_str; /* zone de communication
avec lexit Accueil*/
};
typedef struct InfoTrait InfoTrait; |
Ensuite mes structures pointées :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
struct ZoneExitDerivation_str
{
char outil[9]; /* nom de l'outil */
char typeEnrichissement; /* type d'enrichissement */
char typeAppel; /* type d'appel : init (I), trait (T), fin (F)*/
char champ[16][100]; /* valeur d'un champ repéré dans entete */
char codeEtat; /* code état : valeurs 0,4,6,8 */
int codeRetour; /* code retour (int) */
char desti[22]; /* id destinataire fonctionnel */
char filiere[9]; /* filière associée au document */
char typeFamCom[17]; /* type de mla famille de communication */
char critereBanalise[9]; /* critère de segmentation */
char zcrit[61]; /* zone banalisée applicative */
ZoneEditable_str zoneEdit_str[8]; /* zones éditables */
Enrichissement_str enrich1_str[5];/* zones enrichissment */
char zoneTravail[401]; /* zone de travail */
};
typedef struct ZoneExitDerivation_str ZoneExitDerivation_str ;
struct ZoneExitDerivation
{
char outil[8]; /* nom de l'outil */
char typeEnrichissement; /* type d'enrichissement */
char typeAppel; /* type d'appel : init (I), trait (T), fin (F)*/
char champ[16][99]; /* valeur d'un champ repéré dans entete */
char codeEtat; /* code état : valeurs 0,4,6,8 */
char codeRetour[2]; /* code retour (champ binaire) */
char desti[21]; /* id destinataire fonctionnel */
char filiere[8]; /* filière associée au document */
char typeFamCom[16]; /* type de mla famille de communication */
char critereBanalise[8]; /* critère de segmentation */
char zcrit[60]; /* zone banalisée applicative */
char zoneEditable[101]; /* zone éditable selon table médias */
ZoneEditable zoneEdit[8]; /* zones éditables */
Enrichissement enrich1[5];/* zones enrichissment */
char zoneTravail[400]; /* zone de travail */
};
typedef struct ZoneExitDerivation ZoneExitDerivation ;
/* zone éditable (utilisé pour l'exit dérivation) */
struct ZoneEditable
{
char longueur[2]; /* longueur utile de la zone */
char valeur[99]; /* valeur de la rubrique éditable */
};
typedef struct ZoneEditable ZoneEditable ;
/* zone éditable str (utilisé pour l'exit dérivation) */
struct ZoneEditable_str
{
int longueur [2]; /* longueur utile de la zone */
char valeur[100]; /* valeur de la rubrique éditable */
};
typedef struct ZoneEditable_str ZoneEditable_str ;
/* zone enrichissement (utilisé pour l'exit dérivation) */
struct Enrichissement
{
char longueur[2]; /* longueur utile de la zone champ binaire */
char enreg[255]; /* enregistrement */
};
typedef struct Enrichissement Enrichissement ;
/* zone Enrichissement_str (utilisé pour l'exit dérivation) */
struct Enrichissement_str
{
int longueur[2]; /* longueur utile de la zone champ binaire */
char enreg[256]; /* enregistrement */
};
typedef struct Enrichissement_str Enrichissement_str ; |
Pour finir, le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
int A434_Transfo_Retour_Exit_Derivation(ZoneExitDerivation_str *pS,
ZoneExitDerivation*pE)
{
/*--------------------------------------------------------------------*/
/* Variables locales */
/*--------------------------------------------------------------------*/
int rc = 0;
int i = 0;
char numeric[3];
/*--------------------------------------------------------------------*/
/* Debut de traitement */
/*--------------------------------------------------------------------*/
for (i = 0; i<8; i++)
{
numeric[0] = pE->zoneEdit[i].longueur[0];
numeric[1] = pE->zoneEdit[i].longueur[1];
pS->zoneEdit_str[i].longueur = atoi(numeric);
memcpy(pS->zoneEdit_str[i].valeur,
pE->zoneEdit[i].valeur, sizeof(pE->zoneEdit[i].valeur));
}
for (i = 0; i<8; i++)
{
numeric[0] = pE->enrich1[i].longueur[0];
numeric[1] = pE->enrich1[i].longueur[1];
pS->enrich1_str[i].longueur = atoi(numeric);
memcpy(pS->enrich1_str[i].enreg,
pE->enrich1[i].enreg, sizeof(pE->enrich1[i].enreg));
} |
Mon erreure se situe donc sur les deux atoi et reste inexplicable pour moi
D'avance merci de votre aide.
(Ceci dit j'ai peut-être une idée mais elle ne me parrait pas bonne... ajouter une * devant le pS...)