[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...)
    0
    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 ?

      0
      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
                }       
        
            }
        }
        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 ?

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

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