Accueil > Forum > > > > Probleme avec new() non crée pour certaine valeur...
Probleme avec new() non crée pour certaine valeur...
vendredi 10 novembre 2006 à 17:45:21 |
Probleme avec new() non crée pour certaine valeur...

jojomillenium
|
Bonjour, J'ai un probleme qui est apparu de je ne sais ou alors que ca marchais avant une certain modif que je vais expliquer. J'ai des classes: class VERTEX // Build our Vertex Class { public: GLfloat pt[12]; // 3D coordinates x, y // hauteur };
// CLASS GROUPANT LES 4 SOMMETS DE LA FACE class QUAD // Build our Quads Structure { public: int num_pts; bool visible; int type; GLdouble* bottom; GLfloat* top; VERTEX* vertex; int symbole; };
// CLASS D'UN COUCHE class LAYER // Build our LAYER Class { public: int num_quads; bool visible, existe; float hauteur, zstart, h, penetration; char* nom_cif; char* nom_couche; vec4 color; QUAD* quad;
LAYER() { this->num_quads=0; this->zstart = 3.0; this->hauteur = 2.0; this->h = 5.0; this->color.set(0, 0, 0, 1.0); this->visible=true; this->nom_cif = ";"; this->nom_couche = ";"; } void Del(int _num) { delete this->quad; this->num_quads=0; this->quad = new QUAD[_num]; }
~LAYER() { } };
struct SYMBLAYER { int numquads; };
struct SYMBDS { SYMBLAYER layer[13]; };
extern SYMBDS* SymboleDS; extern LAYER* LLayer;
et je fais ensuite: LAYER* LLayer = new LAYER[13](); SYMBDS* SymboleDS;
LAYER correspond a 13 couches que je veux ensuite dessiner en OpenGL, SYMBDS correspond a un tableau qui me sert a enregistrer des symboles avec leur nombre de quad par couche lu dans un fichier (un fichier CIF pour les masque de circuit integre), Le nombre total de quad a dessiner pour chaque LLayer est enregistré dans un tableau TabTest[13], je veux donc une fois que je sais combien de quads je dois créer par LLayer... bah les créer;
for(int c=0; c<13; c++) { int createquads = TabTest[c]; if(LLayer[c].num_quads>0) // condition au cas ou un fichier CIf avait deja été chargé et quon veut en voir un nouveau. LLayer[c].Del(createquads); else LLayer[c].quad = new QUAD[createquads]; }
Bizzarement si createquads est supérieur a 35, mon nouveau QUAD n'est pas créé! new() me renvoie 0! inferieur a 35 c'est bon!
Pourquoi? D ou peut venir le probleme?
Merci pour votre aide.
|
|
vendredi 10 novembre 2006 à 17:57:15 |
Re : Probleme avec new() non crée pour certaine valeur...

jojomillenium
|
PS:
Si je met en commentaire les structures pour les symboles et tous ce qui concerne ces structure dans mon code... bah la mon new marche! en tout ca new me créer sans prob des quads de taille 200000... j'ai pas testé la limite, mais en tout cas 2000000000 ne marche pas!
Une idée d'ou vient mon probleme et comment le resoudre? mes tableaux peuvent avoir une dimension enorme du style de 500000! bon apres mon OpenGL laggera grave mais bon...
Merci,
Jojo
|
|
vendredi 10 novembre 2006 à 20:32:43 |
Re : Probleme avec new() non crée pour certaine valeur...

Ombitious_Developper
|
Salut:
Ta classe Quad contient des pointeurs. Tu dois au moins définir un constructeur pour la classe Quad pour initialiser ces pointeurs.
|
|
vendredi 10 novembre 2006 à 20:39:51 |
Re : Probleme avec new() non crée pour certaine valeur...

jojomillenium
|
il le sont en temps voulu, car ca depend encore des valeurs lu! Une fois qu'il a lu une fois le fichier pour voir combien de quad dessiner pour chaque couche, il relis le fichier, et des qu'il a un objet a dessiner (rectangle, polygon, ...) il créé un nouvel objet bottom par exemple avec le nombre de coordonnée correspondant a l element a dessiner, et ainsi de suite.
bottom, top peuvent avoir une dimension de 12 comme de 80 dependant du nombre de sommet du polygon
|
|
vendredi 10 novembre 2006 à 20:43:18 |
Re : Probleme avec new() non crée pour certaine valeur...

jojomillenium
|
le probleme ne survient que quand j'ai mes structure, je pourrai les remplacer par un tableaux a 3 dimensions! mais comment faire? J'ai essayé en declarant int * TabSymb[13][1];
puis a l endroit ou je dois le créer j'ai mis:
TabSymb = new int[numds][13][1]; mais ca ne fonctionne pas!
|
|
vendredi 10 novembre 2006 à 20:54:32 |
Re : Probleme avec new() non crée pour certaine valeur...

Ombitious_Developper
|
Salut:
Pour instancier un tableau d'objets il faut suivre cette démarche essaye de t'inspirer:
ClasseA * array;
array = new ClasseA [15]; for (int i=0; i<15; i++) { array [i] = new ClasseA (); }
|
|
vendredi 10 novembre 2006 à 20:54:48 |
Re : Probleme avec new() non crée pour certaine valeur...

jojomillenium
|
Proleme à l'air resolue pour le moment en utilisant un tableau a 3 dim!
|
|
vendredi 10 novembre 2006 à 21:00:42 |
Re : Probleme avec new() non crée pour certaine valeur...
|
vendredi 10 novembre 2006 à 21:02:12 |
Re : Probleme avec new() non crée pour certaine valeur...

jojomillenium
|
C'est effectivement un program assez complexe que je dois developper :S Merci pour ton aide!
|
|
vendredi 10 novembre 2006 à 21:04:02 |
Re : Probleme avec new() non crée pour certaine valeur...

Ombitious_Developper
|
Salut:
Juste un conseil: "Il ne faut pas compiquer les choses sinon on risque de s'ennuir"
|
|
Cette discussion est classée dans : int, num, llayer, layer, quad
Répondre à ce message
Sujets en rapport avec ce message
Convertion d'un double en hexadecimal (IEEE-754) [ par Cphil51 ]
Salutation a tous.Je cherche a convertir un double en notation hexadécimale. J'ai deja essayé pour un float (plus simple car il prend que 32 bits), ce
Gestion des long int [ par kiira31 ]
Bonjour, Je code en ce moment la fonction printf. Je suis en train de gerer l affichage d'un nombre mais j'ai un souci pour gerer les long. Voici mo
Mediane d'une suite de nombres [ par alexey27 ]
Bonsoir je dois creer un programme qui affiche la mediane d'une suite de 10 nombres. Voici ce que j'ai fait : #include int main (){ const in
Liste chainée de class dans une class... [ par jojomillenium ]
Bonjour,Je fait un programme en API sans MFC,J'ai une class du genre:class VERTEX // Build our Vertex Class{public: GLfl
héritage c++ [ par mouadsa ]
Bonsoir, Alors, j'ai créer un programme en c++ concernant une classe "compte" où je px calculer le versement et le retrait bien sur sous condition. Ma
Aide sur les classes [ par mouadsa ]
Bonsoir, J'ai un programmes en c++ où je dois créer une classe compte et puis créer n comptes (tableau dynamique), les afficher tous et saisir leurs p
aide problem de compilation [ par pboscaiolo ]
Bonjour j'ai un code avec le code suivant. quand je le compile ca plante, je crois qu'il s'agit d'un probleme d'allocation de memoire. le fichier duq
Programme client sereur [ par bmoussa1989 ]
Bonjour, j'ai un programme "client serveur" programmé en c++ (et avec la bibliothèque "MPI") et je veux faire une communication entre le client et le
CList et win32 [ par jojomillenium ]
Bonjour, ma question est simple, je defini mes classes telquel: // COORDONNEES class VERTEX // Build our Vertex Class { pub
Nombres amis [ par Darksnakes ]
Bonjour tout le monde,Voila je débute en C, et pour un tp j'ai besoin de faire un programme qui m'affiche la liste des nombres amis inférieur ou égale
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|