Bonujour, j'essaie de m'initier au c++, et je me retrouve face a un probleme : je ne comprends pas comment faire pour créé un tableau d'objet. Pour m'entrainer au c++ j'ai recuperé les sujets de la piscine de l'ecole 42 (j'en suis d01 ex03 : https://github.com/jpirsch/piscines/.../d01.en(1).pdf).
J'essaie donc de faire un objet, qui peux créé un tableau d'objet.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #ifndef ZOMBIEHORDE_HPP # define ZOMBIEHORDE_HPP #include <iostream> #include <stdlib.h> #include "Zombie.hpp" #include "ZombieEvent.hpp" class ZombieHorde { private: Zombie *horde[]; public: ZombieHorde(int nbrZombie); void announce(void); }; # endifMais mon programme me retourne soit un bus error soit une segmentation fault :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #include "ZombieHorde.hpp" ZombieHorde::ZombieHorde(int nbrZombie) { srand(time(0)); ZombieEvent zombie_event("Infecté"); std::string tab[] = {"Daniel", "Moncef", "Louis", "John", "Phillipe"}; int i = 0; while (i < nbrZombie) { this->horde[i] = zombie_event.newZombie(tab[rand() % 5]); i++; } this->horde[i] = NULL; } void ZombieHorde::announce(void) { int i = 0; while (this->horde[i] != NULL) { this->horde[i]->announce(); i++; } } int main(void) { ZombieHorde horde(5); horde.announce(); }
J'avoue etre un peu perdu, je ne vois pas ce qui cloche dans ma classe...<Louis (Infecté)> Braiiiiiiinnnssss...
<Daniel (Infecté)> Braiiiiiiinnnssss...
<Phillipe (Infecté)> Braiiiiiiinnnssss...
<Phillipe (Infecté)> Braiiiiiiinnnssss...
<Louis (Infecté)> Braiiiiiiinnnssss...
[1] 89101 bus error ./zombie
J'ai lu sur le net que la fonction vector() pourrait m'aider, mais j'aimerais joué le jeu et faire sans (cette fonction n'est pas autorisé pour les etudiants qui font cette piscine apparemment)
Sachant que je n'ai pas encore fait le destructeur, ca doit venir de lui, parce qu'on dirait que c'est au moment ou le programme se ferme, quoi que je mette dans le programme, ca va s'executer, et mettre le segfault ensuite.
Mais meme en sachant ca je ne vois pas pourquoi il pourrait segfault
Partager