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

Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009
- - Dernière réponse : 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
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
194
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
11 juin 2009
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de EMSIEN
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2
0
Merci
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>
Commenter la réponse de cs_JCDjcd
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
4
0
Merci
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.
Commenter la réponse de luhtor