Tableau 2D nombre de colonne inconnu [debutant C++] [Urgent] - C++ - Programmation
Marsh Posté le 24-02-2006 à 16:48:43
tableau à taille dynamique -> std::vector
http://www.sgi.com/tech/stl/Vector.html
Marsh Posté le 24-02-2006 à 16:59:46
Code :
|
un truc dans le genre si j'ai bien compris ce que tu veux
Marsh Posté le 24-02-2006 à 17:08:37
oui c'est ça qu'il me faut mais dans la déclaration je fais comment pour déclarer tab[Nbli][Nbco]?comme Nbco n'est pas une constante?
Marsh Posté le 24-02-2006 à 17:14:47
et alors ? tu le déclare pas en tant que constante ou alors tu fais ca
Code :
|
note :
utiliser la STL est beaucoup mieux (cf réponse de sketler)
Marsh Posté le 24-02-2006 à 17:29:45
j'ai pas encore fait la STL merci beaucoup pour cette aide jvais l'essayer
Marsh Posté le 24-02-2006 à 17:38:52
blastman a écrit : et alors ? tu le déclare pas en tant que constante ou alors tu fais ca
|
oui mais const ou pas si la taille ne peut pas etre resolu à la compilation (essayes donc d'initialiser le tableau) c'est du vla et ce n'est pas standard
Marsh Posté le 24-02-2006 à 17:43:00
int NMAX;
cout<<"combien de restaurants ont été visités?";
cin>>NMAX;
const int NbLi=3;
const int NbCo=NMAX;
int Tab[NbLi][NbCo];
int L,C;
La ligne en rouge pose pobleme : j'ai comme erreur :
.cpp(18) : error C2057: expected constant expression
.cpp(18) : error C2466: cannot allocate an array of constant size 0
.cpp(18) : error C2087: '<Unknown>' : missing subscript
Error executing cl.exe.
Comment le résoudre?
Marsh Posté le 24-02-2006 à 17:50:41
peut-être en déclarant un :
int** Tab;
et en l'allouant après ?
Marsh Posté le 24-02-2006 à 17:51:41
ReplyMarsh Posté le 24-02-2006 à 17:52:38
o6six a écrit : int NMAX; |
c'est ce que j'avais dis, la solution de blastman dépend du compilateur (pas standard)
Marsh Posté le 15-03-2006 à 14:10:27
si tu est toujours intérésse voici deux propositions
1- tu peut déclarer un tableau de taille maximale dépendant du domaine de ton travail (100,1000 ou autre ..) et n'utiliser qu'une partie de ce tableau tel que (for i=0; i<ncol;i++) {traitement} aprés avoir lu ncol
2- ou bien l'alocation dynamique tel que proposée par xxxx mais là tu ne peut pas profiter de double indxation le tableau sera d'une seule dimension et T[i,j] devient T[i*ncol+j]
et bien sure l'alocation sefait par maloc ou caloc ou bien new tu doit revoir l'aide pour la syntaxe correcte.
merci de me répendre si ca marche ou non
Marsh Posté le 17-03-2006 à 19:36:47
int **tab;
cin>>nbLigne
tab = new int *[nbLigne];
//ensuite on initialise chaque ligne
cin>>NbCol;
tab[0]= new int[NbCol]
....
Cette solution te permet à la fois: initialiser dynamiquement nbLigne
et initialiser chaque ligne avec un nombre colonne different
N'oublie pas à liberer le memoire avec delete
Marsh Posté le 18-03-2006 à 14:04:27
Reply
Marsh Posté le 24-02-2006 à 16:24:22
Comment créer un tableau 2 dimension avec la version 6 de Visual C++ quand on ne connait pas le nombre de colonne mais que celui-ci nous est demandé au début du programme?