[C] Comment fait-on un tableau dynamique a 2 dimensions ?

Comment fait-on un tableau dynamique a 2 dimensions ? [C] - C++ - Programmation

Marsh Posté le 20-05-2003 à 20:04:29    

Je veux faire un tableau dyn a deux dimensions, une dimension qui contient un nombre de figures et l autre qui contient le nombre de points de la figure.

Reply

Marsh Posté le 20-05-2003 à 20:04:29   

Reply

Marsh Posté le 20-05-2003 à 20:49:36    

aidez moi plise  :bounce:

Reply

Marsh Posté le 20-05-2003 à 21:23:54    

-> un pointeur de pointeur :D
 
En clair (par exemple):
 

Code :
  1. int **ppData;
  2. ppData = malloc(n*sizeof(int*));
  3. ppData[i] = malloc(z*sizeof(int));

Reply

Marsh Posté le 20-05-2003 à 21:39:56    

tabasc0 a écrit :

Je veux faire un tableau dyn a deux dimensions, une dimension qui contient un nombre de figures et l autre qui contient le nombre de points de la figure.


 
dans ce cas, ce n'est pas un tableau à 2 dimensions, mais plutôt 2 tableaux dont les éléments correspondront d'un tableau à l'autre ... Le seul lien que tu auras entre les tableaux, c'est que tu utiliseras le même index pour obtenir les deux infos pour chaque cas ...


---------------
last.fm
Reply

Marsh Posté le 20-05-2003 à 21:43:07    

Alload a écrit :

-> un pointeur de pointeur :D
 
En clair (par exemple):
 

Code :
  1. int **ppData;
  2. ppData = malloc(n*sizeof(int*));
  3. ppData[i] = malloc(z*sizeof(int));




:o
 

Code :
  1. int **ppData;
  2. ppData = malloc(n*sizeof(int*));
  3. for(int i=0; i<n; i++)
  4.   ppData[i] = malloc(z*sizeof(int));


 
Si on veut que ca colle à ce que je disais : tu mets n=2 et ca va te générer 2 tableaux de taille z ... Ca ne présente pas un grand intérêt vis à vis de faire 2 tableaux séparés ... D'autant plus que tu pourra donner un nom plus explicite à chaque tableau qui pourra sans doute aider à la relecture ...


---------------
last.fm
Reply

Marsh Posté le 20-05-2003 à 21:55:08    

j'y connais rien en C mais ils ont pas l'air super dynamiques vos tableaux là [:meganne]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-05-2003 à 23:44:57    

the real moins moins a écrit :

j'y connais rien en C mais ils ont pas l'air super dynamiques vos tableaux là [:meganne]


 
 :heink: En quoi il serait pas dynamique ?


---------------
"Home fucking is killing prostitution"
Reply

Marsh Posté le 20-05-2003 à 23:50:37    

Arlo a écrit :


 
 :heink: En quoi il serait pas dynamique ?

ben sa taille est fixe nan? (n)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-05-2003 à 23:51:31    

ça dépend ce qu'on appelle dynamique... ici c'est statique une fois alloué, mais dynamique du point de vue de la compilation :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 20-05-2003 à 23:53:53    

antp a écrit :

ça dépend ce qu'on appelle dynamique... ici c'est statique une fois alloué, mais dynamique du point de vue de la compilation :D

quoi aller un tableau[n] c'est plus dynamique d'un tableau[3] c'est ça? :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-05-2003 à 23:53:53   

Reply

Marsh Posté le 20-05-2003 à 23:55:19    

bhen un peu [:ddr555]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 20-05-2003 à 23:58:09    

the real moins moins a écrit :

quoi aller un tableau[n] c'est plus dynamique d'un tableau[3] c'est ça? :heink:


 
A la compilation ca n'a rien a voir:
 
En déclarant un tab[n], ca n'est qu'a l'éxecution que la taille a allouer sera determinée.
 
Alors qu'avec un tab[3], la taille a allouer sera calculer a la compilation, et dès l'execution un espace pour ton tab[3] sera reservé.
 
 :hello:


---------------
"Home fucking is killing prostitution"
Reply

Marsh Posté le 20-05-2003 à 23:58:53    

Ouais mais ce qu'il veut dire c'est que le tableau n'est pas vraiment dynamique. En général tableau dynamique ça veut dire qu'on change sa taille quand on veut, comme par ex std::vector en C++ ;)
 
Enfin je suppose qu'ici on peut faire un realloc ?


Message édité par antp le 20-05-2003 à 23:59:28

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2003 à 00:01:43    

Oui je vois ce qu'il veut dire  :)  
 
Mais std::vector n'est qu'un niveau d'abstraction supplémentaire, sachant que derrière ce n'est finalement que des malloc/realloc ;)


---------------
"Home fucking is killing prostitution"
Reply

Marsh Posté le 21-05-2003 à 00:02:16    

antp a écrit :


Enfin je suppose qu'ici on peut faire un realloc ?


 
Oui bien sur.


---------------
"Home fucking is killing prostitution"
Reply

Marsh Posté le 21-05-2003 à 00:02:56    

oui antp c'est ce que je voulais dire
 
 
tain le C c'est vraiment pas pour moi :wahoo:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 21-05-2004 à 16:50:08    

comment envoie-t-on un tableau dynamique sur le réseau par socket TCP avec un write ??

Reply

Marsh Posté le 21-05-2004 à 17:07:07    

damiraptor a écrit :

comment envoie-t-on un tableau dynamique sur le réseau par socket TCP avec un write ??


tu peux expliquer le rapport avec ce topic qui a un an?[:mlc]

Reply

Sujets relatifs:

Leave a Replay

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