Conflicting types for en C
Salut,
j'ai des conflits de types mais je n'arrive pas à comprendre pourquoi...
voici mes erreurs:
Citation:
mapString.h:7:3: erreur: conflicting types for ‘arrayString’
mapString.h:7:3: note: previous declaration of ‘arrayString’ was here
mapString.h:13:3: erreur: conflicting types for ‘mapString’
mapString.h:13:3: note: previous declaration of ‘mapString’ was here
mapString.h:15:6: erreur: conflicting types for ‘mapString_display’
mapString.h:15:6: note: previous declaration of ‘mapString_display’ was here
mapString.h:17:13: erreur: conflicting types for ‘mapString_create’
mapString.h:17:13: note: previous declaration of ‘mapString_create’ was here
mapString.h:19:6: erreur: conflicting types for ‘mapString_addArray’
mapString.h:19:6: note: previous declaration of ‘mapString_addArray’ was here
mapString.h:21:6: erreur: conflicting types for ‘mapString_destroy’
mapString.h:21:6: note: previous declaration of ‘mapString_destroy’ was here
mapString.h:23:5: erreur: conflicting types for ‘mapString_isset’
mapString.h:23:5: note: previous declaration of ‘mapString_isset’ was here
ma source :
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
| #include "mapString.h"
void mapString_display(mapString myMap)
{
int i;
i=0;
for (i=0;i<(myMap.size);i++)
{
fprintf(stdout, "%s and %s\n",myMap.association[i].key, myMap.association[i].value);
}
}
mapString* mapString_create(int nb) /*nb Maximum size of the map*/
{
mapString *toReturn=malloc(sizeof(mapString));
toReturn->size=0;
toReturn->association=malloc(nb*sizeof(arrayString));
return toReturn;
}
void mapString_addArray(mapString * myMap, char* myKey, char* myValue)
{
int i;
bool found;
i=0;
found=false;
while ((!found) && (i<myMap->size))
{
if (strcmp (myMap->association[i].key,myKey) == 0)
{
strcpy (myMap->association[i].key,myKey);
strcpy (myMap->association[i].value,myValue);
found=true;
}
i++;
}
if(!found)
{
strcpy (myMap->association[myMap->size].key,myKey);
strcpy (myMap->association[myMap->size].value,myValue);
myMap->size++;
}
}
void mapString_destroy(mapString * myMap)
{
free(myMap->association);
free(myMap);
}
int mapString_isset(mapString myMap,char* key)
{
int i;
i=0;
for(i=0; i<myMap.size;i++)
{
if(strcmp (myMap.association[i].key,key)==0)
{return i; }
}
return -1;
} |
mon header :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <stdbool.h>
typedef struct
{
char key[200];
char value[200];
} arrayString;
typedef struct
{
arrayString* association;
int size;
} mapString;
void mapString_display(mapString myMap);
mapString * mapString_create(int nb);
void mapString_addArray(mapString * myMap, char* myKey, char* myValue);
void mapString_destroy(mapString * myMap);
int mapString_isset(mapString myMap,char* key); |
Voila, si vous pouvez m'aider..
Et au passage quelqu'un pourrai me dire qi il y a un moyen pour eviter que j'ai a definir mes char* comme ça key[200] ?