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 :

passage par adresse


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 11
    Points
    11
    Par défaut passage par adresse
    Salut,
    j'ai une structure :
    je crée un tableau de structure en attribuant a la première case qq valeurs au passage, et je genère la suite avec une autre fonction en passant l'adresse.

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    #include <stdio.h>
    #include <stdlib.h>
      typedef struct {
        unsigned int n1:2, n2:2, n3:2, n4:2, n5:2, n6:2, n7:2, n8:2, n9:2, n10:2, n11:2, n12:2, n13:2, n14:2, n15:2, n16:2;
      } bitfield;
    void generate(bitfield *b[]){
     
        b[0]->n13=3; 
        b[0]->n14=1;
        b[0]->n15=3; 
        b[0]->n16=1;
     
        b[1]->n1=3; 
        b[1]->n2=1;
        b[1]->n3=3; 
        b[1]->n4=1;
        b[1]->n5=3; 
        b[1]->n6=1;
      }
     
    main(){
     
      bitfield *b=new bitfield[1000000/16];
     
      b[0].n1=2;             
      b[0].n2=0;
      b[0].n3=3;
      b[0].n4=1;
      b[0].n5=0;   
      b[0].n6=3;
      b[0].n7=0;
      b[0].n8=2;
      b[0].n9=2;       
      b[0].n10=0;
      b[0].n11=3;
      b[0].n12=1;
     
      generate(&b);
     
      printf(" bitfield1 %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d, \n bitfield2 %d,%d,%d,%d,%d,%d\n",
    	b[0].n1,b[0].n2,b[0].n3,
        b[0].n4,b[0].n5,b[0].n6,
        b[0].n7,b[0].n8,b[0].n9,
        b[0].n10,b[0].n11,b[0].n12,
        b[0].n13,b[0].n14,b[0].n15,
        b[0].n16,b[1].n1,b[1].n2,
        b[1].n3,b[1].n4,b[1].n5,b[1].n6);      
    }
    cela ne fonctionne pas du tout je ne sais pas pourquoi.
    les résultats du printf sont :

    bitfield1 2,0,3,1,0,3,0,2,2,0,3,1,3,1,3,1,
    bitfield2 0,0,0,0,0,0

    pourquoi ce passage par adresse ne fonctionne pas? (si je passe les données en recopie cela fonctionne mais ça ne m'arrange pas car le programme est plus complexe que cet exemple et il y a trop de données à faire passer.
    je ne vois pas pourquoi, lorsqu'il passe à la case 1 du tableau, il n'attribue plus les bonnes valeurs.
    merci.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    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
    void generate(bitfield* b){
     
      b[0].n13=3; 
      b[0].n14=1;
      ...
    }
     
    main(){
     
      bitfield *b=new bitfield[1000000/16];
     
      ...
     
      generate(b);
     
      ...
    }

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/12/2006, 21h31
  2. Réponses: 8
    Dernier message: 03/12/2006, 17h46
  3. Passage par valeur / passage par adresse
    Par jeje99 dans le forum C++
    Réponses: 13
    Dernier message: 16/02/2006, 10h29
  4. passage par adresse
    Par cari dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/02/2006, 11h33
  5. [Debutant(e)]passage par adresse?
    Par cap2fosse dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2004, 10h05

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