Bonjour à tous !
Je recontre un petit soucis dans l'un de mes programmes en C.
Voici un exemple de ce que je voudrais réaliser :
Code :
//prog.h
typedefstruct
{
char code[5];
}etudiant
Code :
//prog.c
void prog (void)
{
etudiant e;
if(strcmp(e.code,"oui" )==0)
printf("code ok" );
else printf ("erreur" );
}
C'est vraiment un résumé, la structure possède d'autre variables théoriquement,etc... mais j'ai cibler le principal ici pour vous expliquer où se situe le problème.
Donc sachant que "code" est une chaine de caractères, lorsque cette chaine forme le mot "oui", je voudrais que l'on écrive "code ok". Mais visiblement ça ne fonctionne pas, j'ai un warning dans mon terminal :
Code :
prog.c:103: attention : passing argument 1 of ‘strcmp’ makes pointer from integer without a cast
Je peux donc exécuter quand même le programme, mais j'ai une erreur de segmentation au niveau du "if" par la suite.
compilateur ? plateforme ?
tu as la meme erreur avec le code "allégé" que tu as posté ?
Merci de ton aide pour commencer
Je tourne sous Linux Sabayon, donc j'utilise le terminal pour compiler (donc avec gcc *.c -o prog).
Alors par contre j'vais rebooté sur Sabayon là parce que j'étais sous Vista et j'rééditerai mon post ensuite.
Mais j'peux déjà te dire que j'ai testé sur un autre Pc (Windows XP) avec "dev c++" le code allégé ci dessus et ça fonctionne sans problème.
En revanche j'pense avoir oublier le #include<stdlib.h> dans mon "vrai" programme...ça pourrait avoir un rapport ? ... j'vais aller voir ça... J'suis débutant au fait ... ça j'l'avais pas précisé !
Oui ça a toujours compilé, j'avais juste le warning ... donc ça n'empêchait pas le lancement du programme ensuite, j'obtenais juste une erreur de segmentation.
Google est ton ami (penses-y ...)
http://c.developpez.com/tutgcc/c207.php (ce n'est qu'une recherche primaire, à toi d'effectuer une recherche plus approfondie)