[C++] tableau de double de taille dynamique

tableau de double de taille dynamique [C++] - C++ - Programmation

Marsh Posté le 19-11-2002 à 23:26:36    

Bonsoir à tous,
 
problème de base en c++ : j'ai une structure dans un fichier .h de type  
 
typedef struct {
 int ligne;
 int colonne;
 double **pixel;
} Image;
 
Dans un fichier .c j'ai une fonction qui prend en parametre un *Image et j'arrive pas à déclarer un tableau de double de taille monImage->ligne par monImage->colonne...  
Le compilateur ne veut pas de déclarations de type :  
 
double tableau[monImage-> ligne][monImage-> colonne];
 
Y a-t'il une solution "simple" ?
 
Merci.
 
mmt

Reply

Marsh Posté le 19-11-2002 à 23:26:36   

Reply

Marsh Posté le 20-11-2002 à 10:27:59    

Bah ouais, enfin, fo utiliser new

Code :
  1. void toto(Image *machin)
  2. {
  3. double **truc = new double *[machin->width];
  4. for (int i=0;i<machin->width;i++)
  5. truc[i] = new double[machin->height];
  6. }


 

Reply

Marsh Posté le 20-11-2002 à 12:36:23    

Code :
  1. double tableau[monImage-> ligne][monImage-> colonne];


 
De plus c mm pas un pb de C++ mais de C tout court, la declaration des tablau 1 ou n dimension doit etre connu lors de la declaration (donc constante ou #define) ou alors le new comme indique


---------------
VT ... Vaucluse / Vrille(euse :sarcastic: ) c'est pareil tant qu'il y a l'humour :D
Reply

Marsh Posté le 20-11-2002 à 12:45:28    

Citation :


la declaration des tablau 1 ou n dimension doit etre connu lors de la declaration (donc constante ou #define) ou alors le new comme indique


non monsieur pas obligé d etre connu,en c les malloc a deux dimensions ca existe aussi  
ex 2 dim:
1ere étape - allouer les lignes
2eme étape - boucle pour allouer les colonnes


Message édité par nicolasm le 20-11-2002 à 12:45:54
Reply

Marsh Posté le 20-11-2002 à 12:46:17    

CE qui revient au new lol ;)


---------------
VT ... Vaucluse / Vrille(euse :sarcastic: ) c'est pareil tant qu'il y a l'humour :D
Reply

Marsh Posté le 20-11-2002 à 13:11:10    

nicolasm a écrit a écrit :

Citation :


la declaration des tablau 1 ou n dimension doit etre connu lors de la declaration (donc constante ou #define) ou alors le new comme indique


non monsieur pas obligé d etre connu,en c les malloc a deux dimensions ca existe aussi  
ex 2 dim:
1ere étape - allouer les lignes
2eme étape - boucle pour allouer les colonnes




 
il parlait de declaration statique a coup de variable dynamque
 
genre :
 
 

Code :
  1. int n;
  2. ...
  3. tab machin[n]; // << c de ce genre de blague dont il causait

Reply

Marsh Posté le 20-11-2002 à 18:07:49    

VisualC++ a écrit a écrit :

Code :
  1. double tableau[monImage-> ligne][monImage-> colonne];


 
De plus c mm pas un pb de C++ mais de C tout court, la declaration des tablau 1 ou n dimension doit etre connu lors de la declaration (donc constante ou #define) ou alors le new comme indique




 
Négatif chef, le code que j'ai donné dans mon premier message compile et tourne sur une station unix (mais c'est du C à la base)...
 
mmt

Reply

Marsh Posté le 20-11-2002 à 18:10:59    

nicolasm a écrit a écrit :

Citation :


la declaration des tablau 1 ou n dimension doit etre connu lors de la declaration (donc constante ou #define) ou alors le new comme indique


non monsieur pas obligé d etre connu,en c les malloc a deux dimensions ca existe aussi  
ex 2 dim:
1ere étape - allouer les lignes
2eme étape - boucle pour allouer les colonnes




 
Merci tout le monde... le double malloc est en effet une solution qui marche...
 
mmt

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed