Erreur bizzar !!!!!

wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007 - 14 janv. 2007 à 14:20
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 14 janv. 2007 à 20:19
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

lektrosonic Messages postés 145 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 21 février 2013
14 janv. 2007 à 15:33
esseye de tout reecrire, peut etre ca  virera le bug

l3KTr0 Was HeRe
0
wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007
14 janv. 2007 à 16:33
C'est une blague ??
Tu veux dire refaire un projet ?

wis : in tartiflette I trust (like the others)
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
14 janv. 2007 à 20:19
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).
0
Rejoignez-nous