Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/03/2007, à 17:50

Rodriguez

[C++]Augmenter la taille et ajouter des éléments dans un tableau

Hello,

j'ai 3 class Animal, Tigre, Test
Tigre hérite de Animal

class Test{
Animal [] tabAnimaux; //tableaux contenant les animaux
int taille; //taille du tableaux
int nbElements; //nombres de cases libres du tableaux

void augmenter_taille(int nb){
//?
}

Comment s'écrit la méthode augmenter_taille

int main(){
Animal [] animaux;
for(int i=0; i<50; i++)
animaux [i] = new Tigre();
}
}

Est-ce que cette écriture est possible :

animaux [i] = new Tigre(...);

Si ce n'est pas le cas, comment faire pour ajouter des Tigres dans le tableau ?

Merci

Hors ligne

#2 Le 01/03/2007, à 18:46

Ryo

Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau

Bonjour,

Ce n'est pas possible en C++ de faire agrandir un tableau dynamiquement. Les tableaux sont utiles si tu connais exactement le nombre d'élements lors de l'écriture.

Le mieux dans ce cas est de faire des listes chainés. Ce sont des classes qui contiennent basiquement 2 atrtributs :
- la donnée
- un pointeur vers le prochain élément

si il n'y pas de prochain élément, le pointeur est NULL.

Pour rajouter un élément, il faut faire pointer le dernier pointeur vers le nouvel élement, et ainsi de suite ...

En faisant une petite recherche Google ou directement sur http://c.developpez.com/, tu devrais y arriver !

bonne chance

ciao

#3 Le 01/03/2007, à 20:19

Luc Hermitte

Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau

Utilises les std::vector, c'est fait pour ça. cf FAQ de developpez.

#4 Le 02/03/2007, à 01:49

best_friend_fr

Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau

Tu peux quand meme utiliser la commande realloc (tres tres moche, surtout si tu as utilisé new au lieu de malloc...)


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#5 Le 02/03/2007, à 02:45

Luc Hermitte

Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau

Non tu n'as pas le droit aux *alloc(), ce n'est pas compatible avec les classes.
std::vector<Animal*> est la solution.

#6 Le 02/03/2007, à 15:27

gene69

Re : [C++]Augmenter la taille et ajouter des éléments dans un tableau

si tu dois redimentioner un tableau il faut que tu alloues un nouveau tableau est que tu copies les données de l'ancien tableau dans le nouveau...
pas de malloc et on évite les memcopy...


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne