Allocation Dynamique d'une Matrice Help

Résolu
EMSIEN Messages postés 194 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 11 juin 2009 - 1 mai 2006 à 03:09
EMSIEN Messages postés 194 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 11 juin 2009 - 1 mai 2006 à 13:18
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

EMSIEN Messages postés 194 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 11 juin 2009
1 mai 2006 à 13:18
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
3
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
1 mai 2006 à 09:42
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>
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
1 mai 2006 à 10:45
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.
0
Rejoignez-nous