CausPupus
Messages postés32Date d'inscriptionvendredi 13 décembre 2002StatutMembreDernière intervention31 décembre 2005
-
28 mars 2005 à 14:10
Snake1024
Messages postés2Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention22 janvier 2006
-
22 janv. 2006 à 12:44
Je cherche à créer un tableau dynamiquement au cours de mon application
(je ne connais pas ca taille avant d'éxecuter le programme).
Donc je sais que pour ca il existe la fonction new[] pour les tableau
mais le probleme c'est que de cette facon je n'arrive a creer des
tableau que de dimensions 1, du type : tab[100]
Pour mon application j'ai besoin d'avoir un tableau de dimension deux
creer de facon dynamique ( sa taille est determinée qu'une fois
l'application lancée)
Il me faudrait un tableau du type : tab[10][20] créer dynamiquement.
voila c'est tout. Merci d'avance. (oui le langage utilisé est le c++, mais bon je pense que vous l'aviez deviner)
Mais si tu veux une solution performante il faudra rester avec un
tableau à une seule dimension (physique) et t'arranger pour l'indexer
suivant 2 dimensions.
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 28 mars 2005 à 15:23
tableau de tableau ou tableau de pointeur, c'est la meme chose, on pourrait meme dire pointeur de pointeur.
Tu peux détailler pour les problèmes de performance ? Je vois pas en
quoi ca induirait d'importantes baisses si ce n'est l'utilisation
massive de pointeur.
Est-ce que tu sais comment fonctionne vector ? Car vector < vector > ca parrait lourd aussi non ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 28 mars 2005 à 15:34
Oui, vector < vector > c'est
lourd, c'est équivalent à la solution que tu proposes, cependant c'est
plus simple, plus sécurisé et plus performant sur les gros objets
(construction controlée).
int ** tab = new *int[10]; c'est un tableau de pointeur (tu alloues un pointeur de pointeur).
Pour allouer dynamiquement un vrai tableau à 2 dimensions il faut allouer un pointeur de tableau.
int (*tab)[20] = new int[n][20];
Le problème c'est que la seconde dimension doit etre connue à la compilation.
Pourquoi
int ** ou
vector
< vector > ne sont pas des solution performante ? Parce que les
donnée sont fragmentées en mémoire, suivant la taille des dimensions ca
peut etre plus ou moins mortelle pour les performances vu que ton cache
fera sans cesse des page fault.
Snake1024
Messages postés2Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention22 janvier 2006 22 janv. 2006 à 12:44
Bonjour!
Mon probléme c que j'ai un projet et pour le réaliser j'ai besoin d'un tableau de tres grande taille mon prof m'a conseillé d'utiliser un tableau de pointeurs à taille connue et dans chaque case de ce tableau y aura une allocation dynamique pour créer 1 autre tableau de pointeurs qui pointerons sur des chaines de caractéres, et quand j'ai essayer ça ne marche pas.
voila (d'une maiére simplifiée) ce que j'ai essayer de faire:
(ne faites pas attention a l'objectif du programme c que pour voir pq ça marches pas!)