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 pour un tableau 2d


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut pointeur pour un tableau 2d
    Bonjour,

    Je voudrais realiser un pointeur sur un tableau 2d pour le passer comme argument à une fonction.

    Voici un exemple de ce que je veut faire.

    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
    32
    33
    34
    35
    36
    37
    #include <stdio.h>
    #include <stdlib.h>
     
    /*prototype de la fonction*/
    void initialisation(int **);
     
    int main(int argc, char *argv[])
    {
     
      int tab[10][10];
      int **point;    /*mon pointeur sur le tableau 2d*/
     
      point=&tab[0][0];
     
      initilisation(**point);
     
      system("PAUSE");	
      return 0;
    }
     
    /*ma fonction qui recoit le pointeur en argument*/
     
    void initialisation(int **p_point)
    {
         int i,j,b;
         for(i=0;i<10;i++)
         {
               for(j=0;j<10;j++)
               {           
                           p_point[i][j]=0;
                           b=p_point[i][j];
                           printf("%d",b);      
               }
               printf("\n");
         }
     
    }

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    quelle est la question?

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je voudrais savoir comment faire pour realiser un pointeur sur le tableau 2d et le passer à une fonction et si je fait de grosses erreurs dans mon code.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    Salut

    est un pointeur sur un tableau 2D d'entiers

    @+

    et mets des balises code ;)

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: pointeur pour un tableau 2d
    Citation Envoyé par olive14
    Je voudrais realiser un pointeur sur un tableau 2d pour le passer comme argument à une fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      int tab[10][10];
      int **point;    /*mon pointeur sur le tableau 2d*/
     
      point=&tab[0][0];
    Non, mauvais type. Un pointeur de pointeur n'est en aucun cas compatible avec un tableau linéaire à deux dimensions. Si tu as lu ça sur un site ou dans unlivre, on veux des réferences. Des sanctions s'imposent!

    Ceci fonctionne, mais c'est un peu tordu...
    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
    32
    33
    34
     
    #include <stdio.h>
     
    /* ma fonction qui recoit l'adresse en argument */
    void initialisation (int (*p_point)[10][10])
    {
       int i, j, b;
       for (i = 0; i < 10; i++)
       {
          for (j = 0; j < 10; j++)
          {
             (*p_point)[i][j] = i + j;
     
             b = (*p_point)[i][j];
     
             printf ("%2d ", b);
          }
          printf ("\n");
       }
     
    }
     
    int main (int argc, char *argv[])
    {
       int tab[10][10];
     
    /* mon pointeur sur le tableau 2d */
       int (*point)[][10];
     
       point = &tab;
       initialisation (point);
     
       return 0;
    }
    Je préfère encore ça:
    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
     
    #include <stdio.h>
     
    /* ma fonction qui recoit l'adresse en argument */
    void initialisation (int tab[10][10])
    {
       int i, j, b;
       for (i = 0; i < 10; i++)
       {
          for (j = 0; j < 10; j++)
          {
             tab[i][j] = i + j;
     
             b = tab[i][j];
     
             printf ("%2d ", b);
          }
          printf ("\n");
       }
     
    }
     
    int main (int argc, char *argv[])
    {
       int tab[10][10];
     
       initialisation (tab);
     
       return 0;
    }

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je vous remercie pour ce petit coup de main.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Neo82
    est un pointeur sur un tableau 2D d'entiers
    Non. C'est un pointeur sur un tableau de pointeurs sur int.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/09/2009, 16h37
  2. un pointeur pour pouvoir retourner un tableau
    Par gougou21 dans le forum Débuter
    Réponses: 8
    Dernier message: 08/01/2009, 14h00
  3. Réponses: 4
    Dernier message: 23/12/2008, 10h32
  4. [GCC] Tableau de pointeurs pour accès multiples en asm
    Par Flo. dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 12/12/2005, 08h47
  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