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++/CLI Discussion :

Déclaration de tableau de pointeur


Sujet :

C++/CLI

  1. #1
    Membre du Club Avatar de Soronite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 82
    Points : 46
    Points
    46
    Par défaut Déclaration de tableau de pointeur
    Bonjour à tous,
    Toujours dans l'optique du projet de mon dernier post.
    Je voulais savoir si il était possible de déclarer un tableau de pointeur en WindowForm .
    Car enfaite j'ai essayé dans une classe ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ref class maclasse
    {
    private: 
    	char * toto [5];
    ...
    }
    Et Visual studio me renvoie cette erreur :
    "error C4368: impossible de définir 'toto' comme membre de 'maclasse' managé: les types mixtes ne sont pas pris en charge"

    Qu'est se qu'il entend pas menbre managé ?
    Et que faut t'il que je fasse pour pouvoir se servir de mon tableau de pointeur tranquillment ?
    Merci de vos reponses

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    De base, tu n'es pas censé mettre d'objet non-managé dans une classe managée.
    Mais tu peux mettre un pointeur sur objet non-managé.
    Ici, un pointeur sur tableau.

    La déclaration devrait s'écrire, pour être lisible pour un humain, char * [5] * toto;
    Malheureusement, le C et le C++ exigent une déclaration ainsi:
    Cette syntaxe étant assez ignoble, je te conseille de passer par un typedef:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    typedef char * CINQPTRCHAR[5];
     
    ref class maclasse
    {
    private: 
    	CINQPTRCHAR * toto;
    ...
    }
    Toto est ici un pointeur sur un tableau de 5 char*.

  3. #3
    Membre du Club Avatar de Soronite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 82
    Points : 46
    Points
    46
    Par défaut Pas adapté pour l'utilisation
    Merci Médinoc de ta réponse,
    Mais je crois que les deux solutions que tu ma donné ne sont pas adapté a se que je faire. Enfaite se tableau de pointeur va servir de "traducteur" avec une combobox (ex: je selectionnne l'élément n°1 de la combobox et travers le tableau je resort la chaine de la case n°1).
    Or si j'ai bien compris le typedef créé un nouveau type ! (ne pas hésité a me dire si je me plante)
    Et avec l'autre méthode je n'arrive pas a initialiser mon tableau !

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Le typedef ne crée pas un nouveau type, seulement un alias de type.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char * (*toto)[5];
    CINQPTRCHAR * tata;
    Ces deux déclarations sont équivalentes et déclarent exactement le même type.
    La preuve, tu peux faire toto=tata et tata=toto sans le moindre problème...

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    pourquoi tu n'utilises pas un conteneur .Net pour stocker les éléments de ta comboBox ? (ou alors je n'ai pas compris)
    du genre un list<String ^>

  6. #6
    Membre du Club Avatar de Soronite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 82
    Points : 46
    Points
    46
    Par défaut
    Merci de ta réponse nico-pyright(c),
    Nikel le list<String ^> j'ai créé la list et sa marche impécable pour se que je voulais faire, je n'est pas eu l'idée de l'utilisé tout simplement parseque je ne connaissais pas !
    Résolut Merci a tous !

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

Discussions similaires

  1. Problème déclaration tableau de pointeur.
    Par BlackStitch dans le forum Débuter
    Réponses: 2
    Dernier message: 16/12/2014, 01h35
  2. Erreur de déclaration d'un tableau de pointeur
    Par undercrash dans le forum C++
    Réponses: 7
    Dernier message: 24/10/2007, 22h37
  3. tableau de pointeurs
    Par seal3 dans le forum C++
    Réponses: 7
    Dernier message: 01/11/2005, 20h51
  4. Tableau de pointeurs de fonctions
    Par Alp dans le forum C++
    Réponses: 7
    Dernier message: 29/10/2005, 13h19
  5. [xslt] déclaration de tableau
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 29/09/2005, 15h13

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