Allocation dynamique de tableau. [Résolu]

Signaler
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Bonjours.

J'ai vu qu'avec une allocation dynamique on peut créer un tableau d'une taille varible comme ceci :
long nombreDAmis = 15;
long* ageAmis = NULL;

 ageAmis = malloc(nombreDAmis * sizeof(long));

Et si je décide d'avoir un ami en plus
après la déclaration du tableau est ce que je peux ajouter un membre à
mon tableau? Et si oui comment faire?

Merci

--------------------
Quand la merde vaudra de l'or les pauvres naitrons sans trou cu cul. Coluche.
Mon projet : Squirrel's Cliff

6 réponses

Messages postés
14884
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
30 novembre 2020
93
realloc

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
64
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
1 juillet 2010
2
C++
utilise new [] & delete []

t'es obligé de reallouer un tableau de taille (anciennetaille+1) , de recopier tout les elements dans ce tableau, d'ajouter ton nouveau pote, de detruire l'ancien tableau.

Ou si tu veux tu peux utiliser la STL:

vector<long> amis;
amis.push_back(mon_nouveau_pote); //ajout d'un nouvel ami

Mad_Love_Disease
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Si tu veux coder en C++ préfère la méthode décrite par mad_love_disease la STL est fait pour ca !

TuRn3r
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Tu as posté dans la rubrique C++, or ce que tu demande n'en est absolument pas, c'est du C pur et dur !
Si tu t'es trompé de rubrique et que tu veux faire du C, tu peux utiliser realloc. Au passage, met :

ageAmis=(long*)
malloc(nombreDAmis * sizeof(long));

tu économisera un warning

Par contre, si tu crois que tu fais du C++ c'est plus grave

TuRn3r
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
6
Oui c'est vrai que c'est du C, désolé d'avoir mal posté.

Par contre tout le C est inclue dans le C++?

Ou vaut-il mieux utiliser la méthode C++ (new, delete) que realloc?

--------------------
Quand la merde vaudra de l'or les pauvres naitrons sans trou cu cul. Coluche.
Mon projet : Squirrel's Cliff
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
6
Ok merci.