Erreur bizzar !!!!!

Signaler
Messages postés
88
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 juillet 2007
-
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
-
Bonjour tout le monde, j'ai un bug que je n'ai jamais eu ...
Je suis sur Visual.NET 2005

mon exe rentre dans la fonction suivante ou P0 est un objet d'une classe mere virtuelle notée A

double VanillaOptionBS::getcloseprice() const
{   
            return P0.closeprice(N,T,r,sigma,S0);
}

tout se passe bien
puis ici
P0 est de classe Butterfly qui est fille de A, closeprice est une virtuelle pure de A
C1,... est de classe Call qui est fille de A, closeprice est une virtuelle pure de A

P1,... est de classe Put qui est fille de A, closeprice est une virtuelle pure de A

double Butterfly::closeprice(MyNorm N,double T_i,double r_i,double sigma_i,double S0)
{   
    Put        P1(K-F);
    double    price4 = P1.closeprice(N,T_i,r_i,sigma_i,S0);
    Call    C1(K-F);
    double price1 = 2*C1.closeprice(N,T_i,r_i,sigma_i,S0);
    Call    C3(K+F);
    double price3 = 2*C3.closeprice(N,T_i,r_i,sigma_i,S0);
    Call    C2(K);
    double price2 = -2*C2.closeprice(N,T_i,r_i,sigma_i,S0);
   
    return price1+price2+price3+price4;
}

Le truc de fou c'est qu'individuelement tout marche bien cad price 4 est bien calculé, si j'avais mis
Call    C1(K-F);
double price1 = 2*C1.closeprice(N,T_i,r_i,sigma_i,S0);
en premier, price1 aurait ete bien calculé, mais il me sort une erreure

en fait c'est au moment du return qu'il chit, il calcule tout nickel et au moment de returner CRACK, le truc important selon moi c'est que c'est toujours lors du second calcul de closeprice qu'il plante...que ce soit C1,C2,C3,P1 ...

Voila aidez moi pitié

wis : in tartiflette I trust (like the others)

3 réponses

Messages postés
145
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
21 février 2013

esseye de tout reecrire, peut etre ca  virera le bug

l3KTr0 Was HeRe
Messages postés
88
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 juillet 2007

C'est une blague ??
Tu veux dire refaire un projet ?

wis : in tartiflette I trust (like the others)
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Y a souvent cette erreur pour un problème de mémoire, genre quand il essaye de désallouer un pointeur non valide.
Vérifie dans l'implémentation de tes classes que tu ne libère pas un pointeur qui est utilisé dans le destructeur après, ou un truc comme ça. Si ça plante au return, c'est une erreur provoquée par la libération des ressources (donc destruction des classes créees dans la procédure).