Allocation Dynamique d'une Matrice Help [Résolu]

Signaler
Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009
-
Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009
-
Salut à vous toutes et à vous tous,
voilà je veux déclarer une matrice de la sorte:     int** MaMatrice;  dans Une Classe
Puis au Niveau du Contructeur je veux Allouer la Mémoire Suffisante Dynamiquement Pour Cette Matrice,sachant que le Nombre qui va l'alouer est passé en Paramètre,alors je fais:

for(int i= 0;i<ordre;i++) //ordre c'est la taille de la matrice et que je vx allouer
        for(int j =0;j<ordre;j++)
        {
            Score[i][j]=new int; //J'alloue
            Score[i][j] =0; //Puis J'initialise
        }
Si Vous Avez une Méthode d'allocation dynamique de Matrice je suis Preneur.
Merci d'avance.
Amicalement Mehdi
http://ntic.blogspirit.com

3 réponses

Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009

Voilou j'ai trouvé la solution,la voici:

int** Score; //Ma Matrice
int ordre; //la Taille

Score=new int*[ordre]; //Allocation du nombre de Ligne

 for(int i=0;i<ordre;i++) //Une Boucle Pour Allouer les Colonnes dans chaque Ligne
    Score[i]=new int[ordre];
 
Merci encore pour vos réponses les amis et Bonne Journée.

Amicalement Mehdi

http://ntic.blogspirit.com
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
je croix que ton code ne marche pas car tu fais Score[i][j], or tu n'as pas le droit de la faire car tu ecris dans une case memoire qui ne t'appartients pas.
Voila comment tu peux faire :

<ol><li>int **CreateMat(
int
ordre) </li><li>{ </li><li>int **mat; <samp>// la matrice</samp></li><li>
int
y; <samp>// <y> pour les lignes</samp></li><li></li><li>mat = Malloc(int*,ordre); </li><li>
for
(y=0;y<ordre;y++) </li><li>  {</li><li>  int x; // <x> pour les colonnes</li><li>  mat[y] = Malloc(int,ordre); </li><li>
  for
(x=0;x<ordre;x++) </li><li>    {</li><li>    mat[y][x] = 0;</li><li>    }</li><li>  } </li><li></li><li>
return
mat; </li><li>} <samp>// CreateMat()</samp>

Pourquoi faire simple quand on peut faire compliqué ?</li></ol>
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
mat = new int[i];


for(int i=0;i<ordre;i++) //ordre c'est la taille de la matrice et que je vx allouer
{

       mat[i] = new int[j];


        for(int j=0;j<ordre;j++)

        {

            Score[i][j]=new int; //J'alloue

            Score[i][j] =0; //Puis J'initialise

        }

}


Ceci dit, moi je ne ferais pas comme ca, je ferais un tableau a une
seule dimension et des fonctions pour accéder aux composantes.