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 :

accéder aux éléments d'un tableau avec l'instruction fixed


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 5
    Points
    5
    Par défaut accéder aux éléments d'un tableau avec l'instruction fixed
    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 !

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Points : 460
    Points
    460
    Par défaut
    Bonjour,

    L'initialisation de ton pointeur se fera toujours avec l'adresse du tableau. pour te décaler dans ton tableau:
    Tu devrais faire des recherches sur l'arithmétique des pointeurs.

    PS: Je ne vois pas pourquoi tu utilise des pointeurs. Ton code semble parfaitement réalisable dans un contexte "safe". Et je ne suis pas sur que tu y gagne en performance.

Discussions similaires

  1. Accéder aux éléments d'un tableau C
    Par pepito3364 dans le forum Assembleur
    Réponses: 19
    Dernier message: 15/06/2015, 17h17
  2. Réponses: 1
    Dernier message: 31/03/2015, 15h36
  3. Accéder aux éléments d'un tableau associatif
    Par jejeman dans le forum AngularJS
    Réponses: 1
    Dernier message: 26/02/2015, 10h22
  4. Accéder aux éléments du Dom d'une page inclue avec une balise object
    Par Aloneghost dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 02/04/2011, 21h06
  5. accéder aux éléments d'un tableau
    Par turican2 dans le forum Langage
    Réponses: 3
    Dernier message: 12/12/2008, 15h41

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