Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1344 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Tableau à 2 dimensions tailles inconnues

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau à 2 dimensions tailles inconnues

n°1330237
thebestdav​e76
Posté le 22-03-2006 à 14:38:46  profilanswer
 

Bonjour à tous,
 
Je souhaiterai créer un tableau à 2 dimensions dont je ne connais pas la taille.
Je sais qu'il faut jouer avec les pointeurs mais je ne vois pas comment faire. J'ai écris ceci :
 
void generate(int m, int n);
{
double *VecteurAlea;  
double **MatriceAlea;
VecteurAlea=new double[n];
MatriceAlea=new double*[m];
int i;
for(i =0;i<m;i++)
  {
     for(k=0;k<n;k++)
         VecteurAlea[k]=(i+1)*k;
     MatriceAlea[i]=VecteurAlea;
  }
}
 
Mais comme MatriceAlea[] est un pointeur sur VecteurAlea, Elle n'est en fait constituée que de la dernière valeur du VecteurAlea. Si n=3 et m=2, MatriceAlea vaudra :   0 2 4 alors qu'il aurait du valoir  0 1 2
              0 2 4                                    0 2 4
 
Comment dois je procéder SVP?

Message cité 1 fois
Message édité par thebestdave76 le 22-03-2006 à 14:41:22
mood
Publicité
Posté le 22-03-2006 à 14:38:46  profilanswer
 

n°1330241
_darkalt3_
Proctopathe
Posté le 22-03-2006 à 14:48:32  profilanswer
 

ouais, ou bien tu utilises des types STL et tu fais des choses propres


Message édité par _darkalt3_ le 22-03-2006 à 14:48:57
n°1330284
thebestdav​e76
Posté le 22-03-2006 à 15:36:31  profilanswer
 

De quelle manière puis je utiliser les types STL?
La STL est très vaste et je n'ai pas trouvé de tableaux dynamiques à 2 dimensions.

n°1330324
_darkalt3_
Proctopathe
Posté le 22-03-2006 à 16:27:50  profilanswer
 

vector de vector ? map de map ?

n°1342245
ami6
Posté le 09-04-2006 à 00:06:35  profilanswer
 

thebestdave76 a écrit :

Bonjour à tous,
 
Je souhaiterai créer un tableau à 2 dimensions dont je ne connais pas la taille.
Je sais qu'il faut jouer avec les pointeurs mais je ne vois pas comment faire. J'ai écris ceci :
 
void generate(int m, int n);
{
double *VecteurAlea;  
double **MatriceAlea;
VecteurAlea=new double[n];
MatriceAlea=new double*[m];
int i;
for(i =0;i<m;i++)
  {
     for(k=0;k<n;k++)
         VecteurAlea[k]=(i+1)*k;
     MatriceAlea[i]=VecteurAlea;
  }
}
 
Mais comme MatriceAlea[] est un pointeur sur VecteurAlea, Elle n'est en fait constituée que de la dernière valeur du VecteurAlea. Si n=3 et m=2, MatriceAlea vaudra :   0 2 4 alors qu'il aurait du valoir  0 1 2
              0 2 4                                    0 2 4
 
Comment dois je procéder SVP?


 
Il vaut mieux procéder comme suit :
 
double **MatriceAlea;
 
void generate(int m, int n);
{
   MatriceAlea=new double*[m];
   for(int i=0;i<m;i++)MatriceAlea[i]=new double[n];
}
 
et pour détruire :
 
for(int i=0;i<m;i++)delete[]MatriceAlea[i];
delete[]MatriceAlea;
 

n°1342295
Taz
bisounours-codeur
Posté le 09-04-2006 à 02:28:06  profilanswer
 

utilise des std::vector, c'est bien mieux. vector< vector<double> > matrice;


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Tableau à 2 dimensions tailles inconnues

 

Sujets relatifs
Créer une méthode qui renvoie un vector à deux dimensions.Données dans un tableau suite à une requête
[Résolu] hauteur de tableau a 100%Userform et tableau word
[EXCEL] fonction comparaison entre cellule et tableauProbleme de tableau
[PHP] Création de tableau ac colonneTableau avec une hauteur de ligne fixe ?
File et tableau de recordAllocation de tableau dans une fonction
Plus de sujets relatifs à : Tableau à 2 dimensions tailles inconnues


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR