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)
A voir également:
Allocation dynamique tableau 2d c
Tableau dynamique c++ vector - Meilleures réponses
C tableau 2 dimensions dynamique - Meilleures réponses
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.
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 ?
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.
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!)