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.