Fonction strcmp en C
friday
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
voila je cherche a utiliser la fonction strcmp dans une fonction de cette maniere (pas simple mais je vais essayer d'etre le plus claire possible) :
J'ai d'un coté dans un fichier main.c:
const char *mot1;
et de l'autre une structure defini ainsi dans le fichier structure.c:
struct StructureP {
char *phrase[];
};
J'ai defini dans mon fichier structure.h la structure comme ça :
struct StructureP;
#define Structure struct StructureP *
Ma fonction est la suivante :
bool fonction(Structure s, const char *mot1)
...
if(strcmp(s->phrase[i],mot1)==0) ...
...
}
Et lorsque je compile pour la fonction strcmp j'ai une erreur de segmentation ... je pense que c'ets du a un probleme de malloc mais je suis un peu perdu donc si vous pouvez m'aider svp !!!
Merci beaucoup !
Cdt
voila je cherche a utiliser la fonction strcmp dans une fonction de cette maniere (pas simple mais je vais essayer d'etre le plus claire possible) :
J'ai d'un coté dans un fichier main.c:
const char *mot1;
et de l'autre une structure defini ainsi dans le fichier structure.c:
struct StructureP {
char *phrase[];
};
J'ai defini dans mon fichier structure.h la structure comme ça :
struct StructureP;
#define Structure struct StructureP *
Ma fonction est la suivante :
bool fonction(Structure s, const char *mot1)
...
if(strcmp(s->phrase[i],mot1)==0) ...
...
}
Et lorsque je compile pour la fonction strcmp j'ai une erreur de segmentation ... je pense que c'ets du a un probleme de malloc mais je suis un peu perdu donc si vous pouvez m'aider svp !!!
Merci beaucoup !
Cdt
A voir également:
- Fonction strcmp en C
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
3 réponses
Que c'est moche le #define Structure ... C'est beaucoup mieux d'utiliser typedef.
Oui effectivement tu dois allouer s->phrase[i] avec un malloc ou l'allouer de manière statique. strcpy ne réalise pas l'allocation.
Oui effectivement tu dois allouer s->phrase[i] avec un malloc ou l'allouer de manière statique. strcpy ne réalise pas l'allocation.
Salut,
si c'etait un pb de malloc, tu ne le verrais pas à la compil, mais à l'execution
l'erreur vient plutot du fait que s est une structure, et non pas un pointeur vers la structure
tu dois donc faire s.phrase[i], et non pas s->phrase[i]
essaie comme ca et vois ce que ca donne
@+
Seb
si c'etait un pb de malloc, tu ne le verrais pas à la compil, mais à l'execution
l'erreur vient plutot du fait que s est une structure, et non pas un pointeur vers la structure
tu dois donc faire s.phrase[i], et non pas s->phrase[i]
essaie comme ca et vois ce que ca donne
@+
Seb
Bonjour, et merci de me repondre,
effectivement ce n'est pas a la compilation mais a l'execution que j'ai le pb de segmentation . De plus,j'ai defini
struct StructureP;
#define Structure struct StructureP *
donc Structure est bien un pointeur vers StructureP, donc il faut utiliser -> et non .
Aprés je coince ...
effectivement ce n'est pas a la compilation mais a l'execution que j'ai le pb de segmentation . De plus,j'ai defini
struct StructureP;
#define Structure struct StructureP *
donc Structure est bien un pointeur vers StructureP, donc il faut utiliser -> et non .
Aprés je coince ...