IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Instanciation d'une structure (type chaine de char)


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Instanciation d'une structure (type chaine de char)
    Bonsoir.

    Voilà, j'ai créé une structure et lorsque je l'initialise, j'obtiens l'erreur bien connue
    "error:incompatible types in assignment"
    sur l'initialisation des champs de type chaine de caractère.
    Je comprends l'erreur mais ne parviens pas à en identifier l'origine.
    Ca a l'air bête comme ça mais je suis aveuglé.
    Quelqu'un peut-il m'éclairer ?

    Merci d'avance.


    Voici la définition de ma structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // struture de donnees pour l'arbre binaire de recherche
    typedef struct Employe{
    	int num;                         // le numero d'immatriculation de l'enployé
    	char nom[MAX_STR];        // le nom de l'employé
    	int departement;              // le label du deppartement; valeur de 1 à 5
    	int age;
    	char poste[MAX_STR];      //poste occupé par l'employé
    	char addresse[MAX_STR];
    }Employe ;
    typedef struct Employe * pEmploye;
    Et voici l'instanciation d'une structure de ce typef qui cause l'erreur sur les champs de type chaine de caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    struct Employe e1;
     
        char nom[] = "Bibi";
        char poste[] = "Ouvrier";
        char addresse[] = "74 rue St Jo";
     
     
        e1.nom = nom;
        e1.num = 12;
        e1.departement = 77;
        e1.age = 30;
        e1.poste = poste;
        e1.addresse = addresse;

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Pour pouvoir copier une chaîne dans une autre il faut utiliser une fonction pour ça; utiliser l'égalité n'est pas correct.
    Tu peux utiliser strcpy :


  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Bonjour et bienvenue sur le forum.
    Une indication sur le message d'erreur lui-même :
    Dans l'expression
    e1.nom est un tableau (et non un pointeur) et il est interdit d'écrire tableau = quelque chose : e1.nom n'est pas modifiable. (Le message d'erreur aurait pu être du genre "e1.nom n'est pas une lvalue")

    Si e1.nom avait été un pointeur, tu aurais pu sans erreur signalée par le compilateur écrire cela. Mais la remarque de Pouet_forever reste encore valable (tu n'aurais copié que l'adresse de départ de la chaine, pas la chaine).

Discussions similaires

  1. Parcours d'une structure (Type)
    Par rouls dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 27/04/2012, 11h28
  2. Problème d'instanciation d'une structure défini dans un OCX
    Par aikidoka13 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/04/2009, 15h07
  3. Conversion d'une structure de données en char*
    Par lolita4882 dans le forum C
    Réponses: 4
    Dernier message: 04/01/2008, 17h04
  4. Réponses: 2
    Dernier message: 30/03/2007, 12h55
  5. Aide sur une selection de chaine de char avec une souris
    Par Baharroth dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/11/2006, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo