[C] intercaler des elements au milieu d'un tableau

intercaler des elements au milieu d'un tableau [C] - C - Programmation

Marsh Posté le 22-01-2008 à 17:56:38    

bonjour,
 
je cherche à intercaler des éléments au milieu d'un tableau, ce qui décalerait toutes les éléments suivants à l'adresse d'après. J'ai regardé un peu mais je n'ai rien trouvé qui puisse me convenir. Vous avez bien quelques pistes à me donner :jap:

Reply

Marsh Posté le 22-01-2008 à 17:56:38   

Reply

Marsh Posté le 22-01-2008 à 18:00:38    

mrpp a écrit :

bonjour,
 
je cherche à intercaler des éléments au milieu d'un tableau, ce qui décalerait toutes les éléments suivants à l'adresse d'après. J'ai regardé un peu mais je n'ai rien trouvé qui puisse me convenir. Vous avez bien quelques pistes à me donner :jap:


 
bcopy ?

Reply

Marsh Posté le 22-01-2008 à 18:02:54    

bcopy?

Reply

Marsh Posté le 22-01-2008 à 18:03:01    

je vais voir ce que ca donne

Reply

Marsh Posté le 22-01-2008 à 18:04:56    

c'est plutot memmove qu'il me faudrait, merci pour l'info

Reply

Marsh Posté le 22-01-2008 à 18:16:25    

mrpp a écrit :

c'est plutot memmove qu'il me faudrait, merci pour l'info


 
Ca fait exactement la même chose, et effectivement memmove est plus conseillé d'après le man.

Reply

Marsh Posté le 22-01-2008 à 22:29:18    

par contre ici il dise qu'il vaut mieux faire une boucle, ça va plus vite que memmove, car memmove travaille octet par octet. Je vais essayer mais ca confirme ce que je craignais ça risque d'être très long.

Reply

Marsh Posté le 22-01-2008 à 22:29:49    

j'ai oublié le lien auquel je voulais faire référence
 
http://www.onversity.com/cgi-bin/p [...] hjkW&P=376

Reply

Marsh Posté le 23-01-2008 à 01:04:55    

Règle numéro 1 en informatique : n'optimise jamais, dans un premier temps.
 
Fait-le, si et seulement si cette fonction est un goulot d'étranglement (ce qui, à mon avis, ne sera certainement pas le cas ici).

Reply

Marsh Posté le 23-01-2008 à 07:38:33    

Si tu as beaucoup d'insertions de ce genre, il te faut autre chose qu'un tableau.

Reply

Marsh Posté le 23-01-2008 à 07:38:33   

Reply

Marsh Posté le 23-01-2008 à 08:47:50    

tpierron : je retiens ton conseil, je vais tester memmove d'abord on verra après.
 
matafan : Autre chose qu'un tableau? ma culture en C est encore en train de se faire, pour le moment j'utilise des allocations dynamiques. Est ce que c'est à que tu pensais. Car effectivement je vais en avoir énormément à faire.

Reply

Marsh Posté le 23-01-2008 à 09:08:57    

mrpp a écrit :


matafan : Autre chose qu'un tableau? ma culture en C est encore en train de se faire


 
Il n'est pas question de C mais de structures de données.
Il serait de bon ton de te rencarder sur ce sujet et sur l'algorithmie en géénral ;)

Reply

Marsh Posté le 23-01-2008 à 10:17:12    

Ouh la j'ai encore du boulot :sweat:  
 
Mais au moins je me suis rendu que je pouvais faire ce que je voulais en rajoutant des données à la fin de mon tableau :whistle:  
 
merci à tous

Reply

Marsh Posté le 23-01-2008 à 10:41:08    

Rencarde-toi sur les listes chaînées, ça devrait répondre à ton besoin.

Reply

Marsh Posté le 24-01-2008 à 16:53:17    

mrpp a écrit :

je cherche à intercaler des éléments au milieu d'un tableau, ce qui décalerait toutes les éléments suivants à l'adresse d'après. J'ai regardé un peu mais je n'ai rien trouvé qui puisse me convenir. Vous avez bien quelques pistes à me donner


realloc()
memmove()
 
mais plutôt que 'tableau', 'listes chainées', c'est fait pour...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 24-01-2008 à 16:54:18    


Pas standard.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 25-01-2008 à 16:08:23    

Emmanuel Delahaye a écrit :


realloc()
memmove()
 
mais plutôt que 'tableau', 'listes chainées', c'est fait pour...
 


 
 
ouais c'est bien ce que j'ai vu, je suis en train de regarder et ça va me demander un peu de tmps pour que ça murisse dans mon esprit

Reply

Sujets relatifs:

Leave a Replay

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