begin process at 2012 05 30 18:02:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

tableau dynamique a 2 dimensions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tableau dynamique a 2 dimensions

lundi 28 mars 2005 à 14:10:01 | tableau dynamique a 2 dimensions

CausPupus



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)
lundi 28 mars 2005 à 15:03:28 | Re : tableau dynamique a 2 dimensions

steve_clamage

Pour les tableaux dynamiques en C++, utilise plutot std::vector.
Par exemple un tableau d'entier de deux dimensions:

vector< vector<int> > tab;

Documentation:
http://www.sgi.com/tech/stl/Vector.html

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.
C'est pour quel genre d'utilisation ?
lundi 28 mars 2005 à 15:05:16 | Re : tableau dynamique a 2 dimensions

luhtor

Faut créer un tableau de tableau. Par exemple, pour des entiers:

int ** tab = new *int[10];   (ou new int*[10] je sais plus)
for (int i = 0; i<10; i++)
       {
          tab[i] = new int[20];
       }

Enfin, tu vois le genre de truc, il me semble que l'on peut pas faire autrement.

++



lundi 28 mars 2005 à 15:09:33 | Re : tableau dynamique a 2 dimensions

steve_clamage

C'est un tableau de pointeur (pas un tableau de tableau), et cette solution peut poser de gros problemes de performance.
lundi 28 mars 2005 à 15:23:14 | Re : tableau dynamique a 2 dimensions

luhtor

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 ?
lundi 28 mars 2005 à 15:34:04 | Re : tableau dynamique a 2 dimensions

steve_clamage

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.
dimanche 22 janvier 2006 à 12:44:41 | Re : tableau dynamique a 2 dimensions

Snake1024

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!)

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <alloc.h>

main()
{
 char *tab[256],nom[21],car='o';
 int i=0,j=0;

 tab[0]=(char*)malloc(sizeof(char)*256);
 while(car=='o' || car=='O')
 {

  printf("\nSaisissez un non: ");
  gets(nom);

  tab[i][j]=(char)malloc(sizeof(char)*(sizeof(nom)+1));
  strcpy(tab[i][j],nom);

  j++;
  if(j==256)
  {
   j=0;i++;
   tab[i]=(char*)malloc(sizeof(char)*256);
  }

  if(i==255&&j==255)
  {
   printf("\nTableau plein\n");
   break;
  }

  printf("Voulez vous continuer? (o/n) : ");
  scanf("%c",&car);
 }
 getch();

}

et MERCI!



Cette discussion est classée dans : créer, dynamique, application, tableau, dimensions


Répondre à ce message

Sujets en rapport avec ce message

allocation dynamique d'un tableau à trois dimensions [ par yo62 ] Bonjour,J'ai un bête pointeur dans une structure :int *Tableau;et je voudrais que ce pointeur pointe sur une allocation dynamique de type tableau mais Allocation dynamique d'un tableau a deux dimensions [ par Kurul1 ] Bonjour à tousJe voudrais allouer dynamiquement un tableau a deux dimensions d'entiersEst-t-il possible de le faire avec des new au lieu d'utiliser ma Allocation dynamique, tableau à 2 dimensions [ par seb013 ] SalutMon problème est simple (la solution je ne sais pas). Je veux faire une allocation dynamique pour un tableau à deux dimensions. Alors pour un ta puissance 4 en interface [ par sylmobo ] Bonjour,   <p class="MsoNormal" st Tableau dynamique à 2 dimensions [ par JLO68 ] Bonjour à toutes et tous je débute en vba excel2007 et je n'arrive pas a me dépatouiller avec un tableau à deux dimensions. le probleme est qu'il comp tableau dynamique de structure plusieurs structure différente en C ? [ par Nico_35136 ] Bonjour a tous, Voila je débute dans l'allocation dynamique en C voici mon problème. Je possédé 5 structure de taille différentes qui vont contenir Faire une fenêtre dynamique [ par medad ] Bonjour, bon la je suis encore devant un problème ,j'ai créer mon application en C++ g utiliser le gedit sous linux bref maintenant je fais les fen DialogBox Dynamique [ par Mr_Coinche ] Bonjour, Je voudrais créer un DialogBox Dynamique (avec l'api windows), à partir d'un fichier de configuration. Je dois pouvoir paramétrer, le texte [DOS]Création d'un script [ par MrDubley ] Bonjour, J'aimerai créer une application de recherche. C'est-à-dire, un programme qui permet de faire une recherche dans une sorte de base de donnée. Excel 2007, filtrer un tableau croisé dynamique avec 2 champs dépendants [ par Paulo66 ] Bonjour a tous, Je ne suis pas surement pas sur le bon forum mais je ne trouve pas développement office dans la liste déroulant [^^confus5] Je suis


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales