Pb Initialisation avec typedef [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
30 août 2006
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bjr à tous

Voila mon pb: Qd j'essaie de compiler le programme ca marche jusqu'au moment où le programme entre dans la fonction TFichePrincipale::TFichePrincipale (qui est appelée dès le début). Du coup j'ai le droit à un EAccessViolation et le programme n'arrive donc pas à se lancer! Comment dois-je procéder pour initialiser??

ci-joint, le début de mon prog, où la variable globale est défini ainsi que la fameuse fonction:


<HR>

TFichePrincipale *FichePrincipale;


typedef enum {Constante, Variable, Binaire, Fonction} TNature;


typedef struct NoeudSynt{
TNature Nature;
double ValConst;
char OperOuFct;
struct NoeudSynt *fg,*fd;
}
TNoeudSynt, *TArbreSynt;


typedef struct{
TArbreSynt Fct;
TArbreSynt Deriv;} TCourbe;


typedef struct{
TCourbe * CourbeNum[200];
int *NbCourbes;} TEnsembleCourbes;


TEnsembleCourbes *EnsembleCourbes;


//---------------------------------------------------------------------------


__fastcall TFichePrincipale::TFichePrincipale(TComponent* Owner) : TForm(Owner)
{

*(EnsembleCourbes->NbCourbes) = 0;


}


<HR>


MERCI ENORMEMENT !!!

6 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
Regarde les exemples de listes chainées en source sur ce site, il y en a des tas.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
EnsembleCourbes est un pointeur non alloué qui ne pointe donc nulle part.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
8
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
30 août 2006

Merci de ta réponse très rapide!
J'ai remplacé

TEnsembleCourbes *EnsembleCourbes;

par

TEnsembleCourbes * EnsembleCourbes = (TEnsembleCourbes *) MonMalloc(sizeof (TEnsembleCourbes));

mais le pb reste le mm..
Messages postés
8
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
30 août 2006

Je précise juste qu'ici MonMalloc a exactement la même fonction que malloc..
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
Le problème est identique pour les membres car tu y a mis des pointeurs.
Pourquoi des pointeurs ???

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
8
Date d'inscription
lundi 27 décembre 2004
Statut
Membre
Dernière intervention
30 août 2006

Ben je les modifie après.. enfin j'avoue les pointeurs c'est vraiment pas mon fort... comment dois-je allouer mon typedef??