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 :

pointeur vers un tableau.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut pointeur vers un tableau.
    Bonsoir.
    Malgrès le nb de sujet sur les poiteurs et les tableaux je n'arrive toujours pas a resoudre mon pb.

    Je fait un tableau dons les éléments sont de type "pig". Puis pour pouvoir travailler sur ces éléments je fait un pointeur ( p) sur le 1er élément du tableau.
    Quand je veux axéder au élément du tableau je fait un pointeur( q=p.
    Avec q j'obtien bien les bonnes donnée mais si je fait q++ je n'obtient plus du tout les réultats:


    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
     
     
    pig* initTab( ...)
    {
        .....
     
    	pig *pTabPig = &pigTab[0];
    	return pTabPig;
    }
     
    int main(void)
    {
          ....
     
    	pig *t=initTab( ...);
    	pig p=*t;
    	printf("%d %d",p.posX,p.posY);/* le résultat est bon */
    	t=t+1;
         p=*t;
    	printf("%d %d",p.posX,p.posY);/* c'est pas bon */
     
          ...
    }

    Si quelqu'un peu me donner un coup de main ca serai vraiment sympa

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Beh pourquoi tu ne renvoies pas pigTab dans ta fonction initPig ? Tu renvoies l'adresse d'une variable locale pas bien du tout,il est là ton probléme.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    pig initTab(....)
    {
     
     
         return pigTab;
    }

    ca marche ?

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par munck
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    pig initTab(....)
    {
     
     
         return pigTab;
    }

    ca marche ?
    Montre plutot d'ou sors pigTab...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    bien là C la methode qui crée est initialise le tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    pig initPigTabLevel( ...)
    {
    	for( i=0; i<...; i++)
    	{	
                pigTab[i]=...;
          }
     
    return ?????;
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    l'idée C de pouvoir traiter les donné du tableau ultérieurement,...

  7. #7
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par munck
    bien là C la methode qui crée est initialise le tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    pig initPigTabLevel( ...)
    {
    	for( i=0; i<...; i++)
    	{	
                pigTab[i]=...;
          }
     
    return ?????;
    }
    Mais pigTab c'est quoi une variable automatique local à la fonction, une variable type pointeur alloué avec malloc,une variable local,une variable passée en paramètre,....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/11/2014, 00h44
  2. Réponses: 5
    Dernier message: 05/12/2011, 20h50
  3. Réponses: 3
    Dernier message: 23/06/2009, 16h40
  4. convertion pointeur vers tableau
    Par gdpasmini dans le forum C++
    Réponses: 2
    Dernier message: 30/03/2006, 00h34
  5. Pointeur vers un tableau
    Par Nikos dans le forum C
    Réponses: 3
    Dernier message: 09/12/2002, 00h43

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