Probleme de tableau

Probleme de tableau - C++ - Programmation

Marsh Posté le 08-12-2002 à 19:10:14    

Voila j ai un tableau d objet que je declare de la facon suivante :
 
NomObjet *tab=new NomObjet [nb];
 
le probleme est que ca plante a l execution
nb est une variable entiere
 
je comprends pas ??
 
 
Vous avez une solution ??
 

Reply

Marsh Posté le 08-12-2002 à 19:10:14   

Reply

Marsh Posté le 08-12-2002 à 19:15:19    

NomObjet *tab=new NomObjet[nb];
 
est ce que nb est valide (pas négatif?). donne plus de code s'il te plait

Reply

Marsh Posté le 08-12-2002 à 19:18:32    

nb est un entier positif >0
 

Reply

Marsh Posté le 08-12-2002 à 19:20:11    

dragonspyro93 a écrit :

nb est un entier positif >0
 
 

et l'est ou le code stp?


Message édité par Taz@PPC le 08-12-2002 à 19:20:31
Reply

Marsh Posté le 08-12-2002 à 19:37:01    

class Objet1{
public:
NomObjet1(){num=0;}
int num;
};
 
class Objet2{
public:
NomObjet2(){nb=1;}
Methode(){Objet1 tab=new Objet1[nb];nb++;}
int nb;
};
 
void main(){
Objet2 *obj=new Objet2();
obj->Methode()  
}

Reply

Marsh Posté le 08-12-2002 à 19:37:52    

voila j ai extremement simplifié parce que en fait je fais de l OPENGL
mais rien que ca marche pas

Reply

Marsh Posté le 08-12-2002 à 19:41:44    

ben ton code est bon sauf:
 
le type de retour de main doit etre int (et il n'y pas besoin d'ecrie return 0;
 
NomObjet1(){num=0;}  peut etre préférablement ecrit NomObjet1() : num(0) {};
 
j'espere que num n'est public que par faute de frappe, sinon, c'est aps terrible comme encapsulation.
 
donne ton vrai code, la ou ca plante s'il te plait. est tu sur que ca vienne des allocations?

Reply

Marsh Posté le 09-12-2002 à 00:39:42    

Le constructeur doit avoir le même nom que la classe.
Sinon, ce n'est pas un constructeur et ni num ni nb ne sont initialisés.
En faisant abstraction du fait que ça ne devrait même pas compiler vu qu'il manque les types de retour...

Code :
  1. class Objet1{
  2. public:
  3. Objet1():num(0){} //pas de "Nom"
  4. int num;
  5. };
  6. class Objet2{
  7. public:
  8. Objet2():nb(1){}
  9. void Methode(){ //type de retour
  10.  Objet1 tab=new Objet1[nb];
  11.  nb++;
  12.  delete[] tab; //pas oublier
  13. }
  14. int nb;
  15. };


Message édité par Musaran le 09-12-2002 à 00:40:36

---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed