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 :

Pointeur sur tableau de pointeurs.


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Graphiste
    Inscrit en
    Juin 2024
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2024
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Pointeur sur tableau de pointeurs.
    Bonjour,

    j'ai un tableau de pointeurs ressemblant à ceci :

    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
     
    const s16 TABLE_POSITION_CRACKERS_1[2][2] = {
                                                    {10,20},
                                                    {30,40}
                                                };
     
    const s16 TABLE_POSITION_CRACKERS_2[3][2] = {
                                                    {10,20},
                                                    {30,40};
                                                    {50,60}
                                                };
     
     
     
     
     
    const s16 *TABLE_POSITION_CRACKERS[2]    =  {
                                                    &TABLE_POSITION_CRACKERS_1[0][0],
                                                    &TABLE_POSITION_CRACKERS_2[0][0],
                                                };
    J'aimerais créer un pointeur de type s16 pour récupérer, par exemple, la valeur "60" qui se trouve en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TABLE_POSITION_CRACKERS_2[2][1].
    Je crée donc un pointeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s16 **ptr = &TABLE_POSITION_CRACKERS[1];
    Mais à partir de là je suis bloqué.

    Une idée ?


    Merci.

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 572
    Points : 7 685
    Points
    7 685
    Par défaut
    Bonjour,

    Tu n'es pas dans le bon forum, ça n'est pas du C#. Ton code est du C ou du C++ ou autre?.

    Tes tableaux ne sont pas des tableaux de pointeurs, ce sont des tableaux de tableaux. Ça permet des tableaux à 2 dimensions.
    s16 **ptr est lui un pointeur qui pointe sur un pointeur. Ça permet aussi d'accéder à d'autres sortes de tableaux à 2 dimensions.
    Les 2 types ne sont pas compatibles entre-eux, le compilateur a dû t'indiquer que la ligne s16 **ptr = &TABLE_POSITION_CRACKERS[1]; n'est pas valide, c'est un Warning en C, et une double erreur en C++ (type et constance incompatibles).

    Pour accéder à tes tableaux, en C++ il faut utiliser std::mdspan<> car on n'utilise normalement pas les pointeurs. En C, tu peux écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    const s16 (* ptr)[2] = &TABLE_POSITION_CRACKERS[1];  // pointeur sur dernière ligne
    const s16*  ptrc = &ptr[1]; // pointeur sur sa dernière colonne
    s16  x = *ptrc;             // valeur de l'élément TABLE_POSITION_CRACKERS[1][1];
    // ou
    s16  x = ptr[1];
    // ou
    s16  x = TABLE_POSITION_CRACKERS[1][1];

Discussions similaires

  1. PB Realloc avec pointeur sur tableau passé en parametre
    Par la_chevre dans le forum Débuter
    Réponses: 2
    Dernier message: 06/02/2009, 12h04
  2. Pointeur sur tableau de structure
    Par Mercenary Developer dans le forum Débuter
    Réponses: 3
    Dernier message: 22/09/2008, 08h35
  3. [x86_64] Passer un pointeur sur tableau défini dans .data
    Par khazna dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 24/04/2008, 19h49
  4. [Debutant] Pointeur sur tableau
    Par Pahcixam dans le forum Débuter
    Réponses: 7
    Dernier message: 25/05/2007, 21h19
  5. Réponses: 11
    Dernier message: 20/10/2006, 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