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 :

probleme de pointeur ....


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Par défaut probleme de pointeur ....
    bonjour,

    J ai un petit probleme aue j aimerai regler.
    J ai plusieurs tableaux a 3 dimensions qui contiennent de int.


    Voici comment je les initialise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     int m1[2][2][2] = {{{0,0}, {1,1}}, {{1,5}, {4,9}}}; 
    int m2[2][2][2] = .....
    Maintenant j aimerai avoir un pointeur p qui pointe sur une des matrices a 3 dimesions suivant un entier donne de tel sorte que auand je fais p[0][0][4] par exemple j ai la valeur des coordonnees de la matrice pointee.

    Je faisais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int ****p;
    p = &m1[0][0][0];
    J ai un warning (assignement from incompatible pointer) et je ne peux pas faire p[i][j][k].
    Si quelqun pourrait m aider.

    Merci.

  2. #2
    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: probleme de pointeur ....
    Citation Envoyé par berg
    Voici comment je les initialise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     int m1[2][2][2] = {{{0,0}, {1,1}}, {{1,5}, {4,9}}}; 
    int m2[2][2][2] = .....
    Maintenant j aimerai avoir un pointeur p qui pointe sur une des matrices a 3 dimesions suivant un entier donne de tel sorte que auand je fais p[0][0][4] par exemple j ai la valeur des coordonnees de la matrice pointee.

    Je faisais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int ****p;
    p = &m1[0][0][0];
    Non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int a[12];
    int *pa = a;
     
    int b[12][34];
    int (*pb)[34] = b;
     
    int c[12][34][56];
    int (*pc)[34][56] = c;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Par défaut
    hummm

    Quand j ai mis ce que tu a ecris je n avais plus de warning, mais quand je fais :

    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
     
     
     
    (int *)p;
     
    void a () {
        ...
        p[2][2] = m1;
        ...
    }
    .......
     
    void b () {
    int i, j;
       for (i = 0; i < 2; i++) {
          for (j = 0; j < 2; j++) {
             if (p[0][i][j] == 1)
                printf("1 ");
             else 
                printf("0 ");
          }
          printf("\n");
       }
    }
    ca me fais une segmention

  4. #4
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    Bonsoir,

    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
     
    (int *)p[2][2] = m1;
     
    .......
     
    for (i = 0; i < 2; i++) {
       for (j = 0; j < 2; i++) { // ici il faudrait incrémenter j, sinon ta boucle ne se terminera pas
     
     
          if (p[0][i][j] == 1)
              printf("1 ");
          else
               printf("0 ");
        }
        printf("\n");
    }
    a+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Par défaut
    merci pour l erreur mais ce n est pas ca.
    Je me suis trompe lorsque j ai ecrit le code.


    En fait j ai l impression que apres la fin de cette fonction, j ai l impression que p me pointe plus sur m1 ....

    Arf c est vrai j ai oublie de le mettre je fais la boucle dans un autre fonction.
    J vais le rajouter d ailleurs.


    en realite je ne fais pas vraiement du C mais de l objectf C ....

  6. #6
    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
    Citation Envoyé par berg
    merci pour l erreur mais ce n est pas ca.
    <...>
    Jen realite je ne fais pas vraiement du C mais de l objectf C ....
    Objective-C...

    Poste le code exact (copié/collé) complet, compilable et réduit au minimum qui ne fonctionne pas. Ce n'est pas clair.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Par défaut
    bon j ai resolu le probleme qui venait d'un probleme specifique a l'objective-C... Emmanuel ce que tu m'a dit fonction tres bien et je t en remercie.

    Le probleme venait tout simplement que j'initialise dans la methode initWtihFrame alors que je devai le mettre dans drawRect.
    Bref c'est balo comme on dit ^^

    pf je commence a croire que j aurai du devellopper cette application en java .

Discussions similaires

  1. problème de pointeur
    Par BnY dans le forum C
    Réponses: 61
    Dernier message: 07/05/2006, 12h31
  2. Probleme de pointeur
    Par Naruto_kun dans le forum C
    Réponses: 17
    Dernier message: 14/12/2005, 20h47
  3. Probleme de pointeurs
    Par mickyoun dans le forum C++
    Réponses: 9
    Dernier message: 10/08/2004, 17h15
  4. Probleme de pointeur sur une fonction
    Par nicky78 dans le forum C
    Réponses: 2
    Dernier message: 23/05/2004, 20h26
  5. probleme avec pointeurs de structures
    Par remi77 dans le forum C
    Réponses: 2
    Dernier message: 20/10/2003, 13h19

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