[C++] Initialiser un tableau bidimensionnel

Fermé
zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 - 13 sept. 2008 à 16:19
 pamputt - 1 sept. 2011 à 16:10
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 !

A voir également:

5 réponses

artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 sept. 2008 à 16:57
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
zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 181
13 sept. 2008 à 17:04
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
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 sept. 2008 à 17:22
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
zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 181
13 sept. 2008 à 17:25
Ç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
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
13 sept. 2008 à 17:34
bah dès que tu as déclaré le constructeur, c'est bon ce me semble
0
zzzer Messages postés 907 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 3 décembre 2023 181
13 sept. 2008 à 17:38
Non, pas dans le constructeur, sinon il va réinitialiser le tableau à chaque nouvel élément que je créerai !

-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Quelque chose comme ça
static bool dejaUtilisees[13][4] = { {false} };
0