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 :

acceder a *char tableau structures? structures imbriquées?


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Par défaut acceder a *char tableau structures? structures imbriquées?
    Bon voila je n'arrive pas a acceder a mes variables situées dans une strucuture qui elle serait dans un tableau situes dans un structure ... hehe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #include <stdio.h>
     
    typedef struct 
    {
    	int num;
    	char *libelle;
    	int coef;
    }Matiere;
     
    typedef struct 
    {
    	int nbMatiere;
    	Matiere t[];
    }Tabmatiere;
     
    int main()
    {
    	Tabmatiere tabMat;
    	//Matiere mat;
    	int i;
    	printf("yop\n");
    	for (i=0; i<3;i++)
    	{
    	printf("saisi :\n");
    	scanf("%s\n",tabMat.t[i].libelle);
    	}
    	printf("La matiere traitant de la %s . \n", tabMat.t[0].libelle);
    	printf("La matiere traitant de la %s . \n", tabMat.t[1].libelle);
    	return (0);
    }
    Vous comprenez mieux la ?
    J'ai code ce truc pour montrer mon probleme.
    Ca compile ms le .exe marche pas.
    De maniere general j'aimerai connaitre la syntaxe pour acceder a un tablaeu de structure lui meme situe ds un strucuture, le tout etant defini en typedef.

    printf("... %s"tabMat.t[0].*libelle);??
    printf("... %s"*tabMat.t[0].libelle);??
    printf("... %s"tabMat.t[0].&libelle);??
    printf("... %s"&tabMat.t[0].libelle);??
    scanf("%s",tabMat.[0].*libelle);??
    scanf("%s",*tabMat.t[0].libelle);??
    scanf("%s,"tabMat.t[0].&libelle);??
    scanf("%s",&tabMat.t[0].libelle);??
    lequel est bon?
    LE rpobleme serait ds les declarations????
    Merci de meclairer.

  2. #2
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut
    Tu accèdes bien comme il faut.
    Mais le problème, c'est que tu as un char* dans ta structure et tu ne lui alloues pas de place mémoire. Donc ça plante...
    Soit tu remplaces le char *libelle; par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char libelle[50]; // 50 par exemple
    soit tu alloues dynamiquement avant de mettre quelque chose dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    tabMat.t[i].libelle = malloc(50);
    printf("saisi :\n");
    scanf("%s\n",tabMat.t[i].libelle);
    Et comme tu connais la taille (d'après ta boucle), met la taille 3 pour ton tableau...

    Nas'

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Par défaut
    meri Nas pour la rapidite de la reponse,
    Je vais test de faire ca

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: acceder a *char tableau structures? structures imbriqué
    Citation Envoyé par yastosh
    Le probleme serait dans les declarations ?
    J'ai surtout des problèmes de crash à l'exécution. Comment sont initialisés les pointeurs des structures ? Et le le tableau de taille non défini, ça signifie quoi pour toi ? Tu voulais faire quoi ?

    En C, il n'y a pas de magie ni de création spontanée d'espace mémoire. Il faut être explicite.

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/04/2013, 10h41
  2. Tableau de structures, structure de structures
    Par nuwanda03 dans le forum C
    Réponses: 11
    Dernier message: 11/12/2012, 21h16
  3. Tableau de structures & structure imbriqué
    Par Mathios dans le forum Débuter
    Réponses: 4
    Dernier message: 06/12/2010, 14h48
  4. Réponses: 9
    Dernier message: 13/02/2006, 08h39
  5. Trier un tableau de structures
    Par Yux dans le forum C
    Réponses: 7
    Dernier message: 05/11/2005, 17h28

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