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 :

Tableaux "anonymes" ?


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Tableaux "anonymes" ?
    Bonsoir,

    Je bute sur un problème depuis quelques heures déjà et malgré mes recherches je ne trouve pas de solution "propre".

    Est-il possible de faire quelque chose dans le genre en C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    static inline PBYTE * _initMatrix(){
    	static PBYTE ret[255];
    	ret[0] = (BYTE[]){1,2,3,4};
    	return ret;
    };
    Malgré mes efforts la ligne "ret[0] = (BYTE[]){1,2,3,4};" ne passe pas.

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    C'est tout a fait normal que ça ne passe pas.
    On ne peut initialiser un tableau avec une liste d'initialisation que lors de sa déclaration.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Il faut attendre un peu .
    En C++ actuel, tu ne peux effectivement faire que l'initialisation à la définition de ton tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    static inline PBYTE * _initMatrix(){
        static PBYTE ret[255] = {1,2,3,4};
        return ret;
    }
    Cependant, avec C++0x et les listes d'initialisations, le code suivant devient valide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    static inline PBYTE * _initMatrix(){
        static PBYTE ret[255] ;
        ret = {1,2,3,4};
        return ret;
    }

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Merci pour vos réponses.
    En fait l'idée était plutôt d'avoir un tableau de pointeur (PBYTE) pour avoir N tableaux de BYTE de taille variable, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    static inline PBYTE * _initMatrix(){
    	static PBYTE ret[255];
    	ret[0] = (BYTE[]){1,2,3,4};
    	ret[1] = (BYTE[]){5,6,4};
    	ret[2] = (BYTE[]){9,9,9,9,9,9,9};
    	//...etc...
    	return ret;
    };
    Si je comprends bien je suis obligé de déclarer N variables pour ensuite les attribuer dans chaque élément du tableau ?

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