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 :

Structure et tableau de pointeurs


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Par défaut Structure et tableau de pointeurs
    Bonjour à tous,

    Je suis en train de développer un petit jeu, et je m'heurte à un petit soucis technique.
    Je souhaite créer une structure (Damier) contenant un tableau de pointeur de structure.
    En gros, le "damier" à toute ses cases à null en début de partie, et au fur et à mesure est remplis dynamiquement par des adresses.

    Voilà le code ( que je pense juste, enfin j'espere) que j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    struct TCellule
    {
    	Tpion *pion;
    };//Une cellule contient l'adresse d'un pion
     
    typedef struct
    {
    	struct TCellule matrice[KMAX_LONG_LIGN][KMAX_LONG_COLO];
    }TDamier;//Un damier est composé d'une matrice de cellule
    Maintenant, pour accéder au contenu d'une cellule(l'adresse d'un pion), il me semble que la syntaxe correcte doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    damier.matrice[i][j].pion
    Enfin imaginons que l'on créé un pointeur de damier pG (pour le passer en paramètre d'une fonction par exemple), l’accès à la cellule serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pG->matrice[plign][pcolo].pion
    //ou
    (*pG).matrice[plign][pcolo].pion
    Or je dois m'être planté dans ce que j'ai fait plus haut car lors de la compilation cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (! pG->matrice[plign][pcolo].pion == NULL);
    le compilo me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    warning: comparison between pointer and integer
    Donc voilà, je ne comprends pas pourquoi cela ne fonctionne pas, vous avez une idée?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (! pG->matrice[plign][pcolo].pion == NULL);
    C'est normal que le compilateur pleure, car l'opérateur ! a la priorité sur ==. Du coup, tu compares une adresse (NULL) avec un entier (le résultat de !expression, qui vaut 0 ou 1).

    Il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return ( ! ( pG->matrice[plign][pcolo].pion == NULL ) );
    Ou, carrément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (pG->matrice[plign][pcolo].pion != NULL);
    Ou, mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return pG->matrice[plign][pcolo].pion != NULL;
    (return n'est pas une fonction, il n'y a pas besoin de parenthèses)

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Par défaut
    Merci beaucoup, tout compile normalement, c'était vraiment stupide comme erreur ><

Discussions similaires

  1. tableau de pointeur de structure
    Par kayenne77 dans le forum Débuter
    Réponses: 5
    Dernier message: 24/01/2009, 18h18
  2. Tableau de pointeurs de structures
    Par jovds dans le forum C
    Réponses: 2
    Dernier message: 11/11/2007, 21h01
  3. Réponses: 7
    Dernier message: 16/04/2007, 13h39
  4. Réponses: 67
    Dernier message: 13/02/2007, 18h08
  5. structure, tableau et pointeur
    Par Phil' dans le forum GTK+ avec C & C++
    Réponses: 16
    Dernier message: 26/05/2006, 17h47

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