Bonjour,

j'aimerai accéder à un tableau qui est dans un structure avec l'instruction fixed

Voici mon code :

Code C# : 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
50
fixed (int* ptrFiltreFixed = filtre.matrix)
            {
                Byte* ptrBmpInWithBorder = ptrBmpInWithBorderFixed + widthBmpInWithBorder + 1;
                Byte* ptrBmpOut = ptrBmpOutFixed;
                int *ptrFiltre = ptrFiltreFixed;
 
                Byte* ptrValPxHaut;
                Byte* ptrValPxBas;
                Byte* ptrValPxGauche;
                Byte* ptrValPxDroit;
                Byte* ptrValPxHautGauche;
                Byte* ptrValPxHautDroit;
                Byte* ptrValPxBasGauche;
                Byte* ptrValPxBasDroit;
 
                for (int i = 1; i < heightBmpInWithBorder - 1; i++)
                {
                    for (int j = 1; j < widthBmpInWithBorder - 1; j++)
                    {
                        // On repositionne correctement les pointeurs
                        ptrBmpInWithBorder = ptrBmpInWithBorderFixed + ((i * widthBmpInWithBorder) + j);
                        ptrBmpOut = ptrBmpOutFixed + (((i - 1) * widthOut) + (j - 1));
 
                        // On place les pointeurs sur les valeurs de voisinnage
                        ptrValPxHaut = ptrBmpInWithBorder - widthBmpInWithBorder;//1
                        ptrValPxBas = ptrBmpInWithBorder + widthBmpInWithBorder;//2
                        ptrValPxGauche = ptrBmpInWithBorder - 1;//3
                        ptrValPxDroit = ptrBmpInWithBorder + 1;//4
                        ptrValPxHautGauche = ptrValPxHaut - 1;//5
                        ptrValPxHautDroit = ptrValPxHaut + 1;//6
                        ptrValPxBasGauche = ptrValPxBas - 1;//7
                        ptrValPxBasDroit = ptrValPxBas + 1;//8
 
                        valTemp =
                            ptrFiltre[0] * *ptrValPxHautGauche + *ptrFiltre++ * *ptrValPxHaut + *ptrFiltre++ * *ptrValPxHautDroit +
                            *ptrFiltre + 3 * *ptrValPxGauche + *ptrFiltre + 4 * *ptrBmpInWithBorder + *ptrFiltre+5 * *ptrValPxDroit +
                            *ptrFiltre + 6 * *ptrValPxBasGauche + *ptrFiltre + 7 * *ptrValPxBas + *ptrFiltre+8 * *ptrValPxBasDroit;$
 
 
 
et la structure : 
 
  public struct struFiltre
        {
            internal int[] matrix;
            internal int facteur;
            internal int offset;
        }
 
filtre.matrix = new int[9] { 1, 1, 1, 1, -8, 1, 1, 1, 1 };



Mon problème est que pour ptrFiltre[n] quelque soit n , ce pointeur pointe toujours à l'adresse ptrFiltre[0].

je n'arrive pas à itérer le pointeur

meric pour votre aide !