[C++] Initialiser un tableau bidimensionnel

Bonjour,

J'ai, dans une classe, un tableau déclaré comme ceci :
static bool dejaUtilisees[13][4];
Et j'aimerais savoir s'il est possible d'initialiser tous ses éléments sans faire de boucle, avec un truc du genre
static bool dejaUtilisees[13][4] = {false, false};
(ceci ne fonctionnant pas).

Merci d'avance !

--
N'oubliez pas de marquer la discussion comme résolue dès que c'est le cas ! -> En haut de la page, Statut: Résolu
Attention aussi à bien respecter la 6e règle de la charte : 
Rédiger les messages dans un langage clair sans abréviation, style télégraphique ou mode SMS
Configuration: Windows XP
Firefox 3.0.1

5 réponses

  1. effectivement, initialiser avec une boucle est plus simple et permet de mettre des conditions. sinon je pense que
    dejaUtilisé[][]=false peut marche, mais de là à être sur...
    sinon ça serait plutôt dejaUtilisé{false}{false} mais bon, de part sa nature, le tableau bi dimenntionnel ne l'accepte pas à mon avis donc je te conseil de t'en remettre à la boucle ce qui est très simple, et de toute façon, ça ne ralentit pas l'ordinateur (en effet il la fera de toute manière...)
    1. Mais comment faire en sorte que ce tableau soit initialisé dès le chargement de la classe, avec une boucle ?

      En gros, où la mettre ?

      1. bah pour l'initialiser 2 cas

        =>tu veux qu'ils aient tous la même valeur (ex true/false, 0)

        typedevariable tontableau[][]=new typedevariable[nb1erindice][nb2emeindice];
        int i;
        int j;
        for(i=0;i<tonindice2;i++){
        
            for(j=0;j<tonindice1;j++){
               tontableau[j][i]=false/0
            }
        }


        =>si tu veux que certaines valeur ne soient pas 0 (mais bon, je te déconseille, seulement si tu as vraiment besoin d'initialiser une case à autre chose que 0)
        typedevariable tontableau[][]=new typedevariable[nb1erindice][nb2emeindice];
        int i;
        int j;
        for(i=0;i<tonindice2;i++){
        
            for(j=0;j<tonindice1;j++){
                if(j==lavaleurspécialedej && i==lavaleurspécialedei){
                  tableau[j][i]=la valeur autre que 0
                }
                else { 
                  tableau[j][i]=0
                }       
        
            }
        }
        1. Ça oui, d'accord, mais ça ne répond pas à ma question ^^
          Ma question est où dois-je placer ce code afin qu'il soit exécuté au chargement de la classe ?

      2. bah dès que tu as déclaré le constructeur, c'est bon ce me semble
        1. Non, pas dans le constructeur, sinon il va réinitialiser le tableau à chaque nouvel élément que je créerai !

      3. Quelque chose comme ça
        static bool dejaUtilisees[13][4] = { {false} };