Chaine de caractère dans une condition [Résolu]

jb63--

Nouveau membre
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 :

[cpp]//prog.h

typedef struct
{
char code[5];
}etudiant[/cpp]

[cpp]//prog.c

void prog (void)
{
etudiant e;
if(strcmp(e.code,"oui")==0)
printf("code ok");
else printf ("erreur");
}[/cpp]

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 :

[cpp]prog.c:103: attention : passing argument 1 of ‘strcmp’ makes pointer from integer without a cast[/cpp]

Je peux donc exécuter quand même le programme, mais j'ai une erreur de segmentation au niveau du "if" par la suite.

Quelqu'un aurait-il une idée ?

En vous remerciant ;)
 

KangOl

Grand Maître
bizarre ca...

compilateur ? plateforme ?
tu as la meme erreur avec le code "allégé" que tu as posté ?
 

jb63--

Nouveau membre

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... :hello:
J'suis débutant au fait ... ça j'l'avais pas précisé ! :D :D
 

jb63--

Nouveau membre
Ok...alors le programme allégé tourne aussi sans problème !
J'vais revoir encore celui d'origine pour essayer de trouver d'ou viens le soucis...

Par contre je sais que si j'veux que ce soit un nombre qui valide l'affichage "code ok", ça marche nikel !

Dans ce genre là quoi :
[cpp]//prog.h
typedef struct
{
int code;
}etudiant;[/cpp]

[cpp]//prog.c
void prog (void)
{
etudiant e;
if(e.code==1)
printf("code ok" );
else printf ("erreur" );
}[/cpp]
 

jb63--

Nouveau membre
Bon bah ça y'est je crois avoir trouvé mon erreur...
J'ai oublié de définir un nombre de caractères pour la variable "code" dans ma structure :ange:

Désolé pour le temps perdu, mais merci de ton aide ;) :hello:
 

jb63--

Nouveau membre

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.
 

jb63--

Nouveau membre

Umhumh ... ok moi j'veux bien :D
Mais ça sert à quoi cette bêbête là ? :)
 

guillaumech

Expert
Google est ton ami (penses-y ...)
(ce n'est qu'une recherche primaire, à toi d'effectuer une recherche plus approfondie)
 

zeb

Modérateur
KangOl +1
guillaumech +1 aussi.

les pages man, gcc -Wall et google sont nos meilleurs amis ;)

jb, force TOUS les warnings et ne sois satisfait de toi que quand il n'en reste aucun. :)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 100
Membres
1 586 287
Dernier membre
lucilleguffey
Partager cette page
Haut