Probleme pour retourner un tableau [C++] - C++ - Programmation
Marsh Posté le 23-10-2001 à 18:56:27
Axe *tab[100];
déclare un tableau de 100 _pointeurs_ sur Axe.
Axe tab[100];
déclare un tableau de 100 Axe.
Axe* tab;
déclare un pointeur sur Axe. peut être un tableau, dans ce cas c'est mieux de te faire un classe tableau. pour le moment, tu peut garder le pointeur et son nombre d'instances dans la classe:
int numAxes;
et quand tu construits :
class A
{
A(int numAxes)
A::A()
{
this->numAxes = numAxes;
tab = new Axe [numAxes];
}
le GetTab() se résume alors à { return tab; }
pour ton 'poum' :
void Poum(Axe* pAxe) { pAxe[0]->x = 0; }
je ne vois pas bien l'intérêt de passer par un pointeur de pointeur ...
ah au fait, ton applic crashe car tu n'alloues nulle part de mem, tu ne fais que déclarer des pointeurs.
Marsh Posté le 23-10-2001 à 18:57:16
Dans la classe A, l'instruction Axe *tab[100], cree un tableau de 100 pointeurs sur axe. mais ces pointeurs ne sont pas initialisés. Donc le tab[0]->x = 0 plante pcq tab[0] n'est pas un pointeur valide.
Marsh Posté le 23-10-2001 à 18:57:33
et si tu expliquais en bon français ce que tu veux faire aussi ... plutôt que de balancer du c++ cash.
Marsh Posté le 23-10-2001 à 18:34:04
J'ai une classe contenant un tableau d'une structure Axe et une fonction retournant un pointeur sur ce tableau:
struct Axe
{
int x, y;
};
class A
{
private:
Axe *tab[100];
public:
Axe * GetTab() {return *tab;}
};
Ensuite j'ai une autre classe qui contient une fonction récupérant et traitant ce tableau:
class B
{
public:
void Poum(Axe **pAxe) {pAxe[0]->x = 0;}
};
Pis dans mon main je met en rapport les objets de ces 2 classes:
void main()
{
A *pA
B *pB
Axe *p = pA->GetTab();
pB->Poum(&p); //va traiter le tableau de pA
}
Voila et quand je lance l'application se ferme directe, c'est sûrement un probleme de pointeur.
Avez-vous une meilleure solution pour retourner un tableau, le passer en paramètre pour le retraiter dans une autre fonction?