Allocation dynamique

hobbes Messages postés 23 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 novembre 2003 - 4 avril 2003 à 14:18
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 - 5 avril 2003 à 23:10
Bonjour,

Mon probleme est que je ne connais pas a l avance la taille du tableau que je souhaite cree. Je pensais alors :creer un tab de maniere dynamique de 1 case ( tabValues (int *)malloc(sizeof(int)); ) puis au fur et a mesure des besoins, rajouter une case. Comment faire. Si je fais (tabValues[PDAT->nbValues-1] (int *)malloc(sizeof(int));), (PDAT->nbValues-1 etant le nouvel element que je souhaite creer), il me fait un probleme avec le int * .

Merci,

Hobbes.

2 réponses

superpa Messages postés 113 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 5 janvier 2004
4 avril 2003 à 14:56
Si tu fais du C++ (j'en suis pas sûr puisque t'utilises malloc), ne te casses pas la tête. T'as les vector de la stl qui sont bien plus simples. Il y a au minimum une source sur ce site qui explique comment s'en servir).

A bientôt,
P-A
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
5 avril 2003 à 23:10
bonjour,

le conseil sur la STL est avisé
sinon, il te faudra gérer toi même les allocations/copie/libération
exemple :
1) alloc d'un seul 'int' sous la forme d'un tableau à 1 élément
2) pour en rajouter un :
alloc d'un tableau de deux 'int'
copie du premier 'int' dans le nouveau tableau
libération du premier tableau
... etc...
ceci n'est vraiment pas performant. Il vaudrait mieux allouer par paquets... comme le fait la STL
0
Rejoignez-nous