IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

bug incompr�hensible


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    241
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 241
    Par d�faut bug incompr�hensible
    Mon programme se compile bien mais une erreur se produit � son lancement et me contrains d'achever son �xecution.
    voici la partie du code � considerer:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    void shift_fft (double *son, double *syn_sin,
    			   double *freq, double *dec, double *ampl, double *arg)
    {
     
    ...
    	SPdRFFT(son, NZP, 1); //FFT of son
    	Mat_abs (son, NZP);
    ...	
    	freq[r] = 2 * ind_w * PI / NZP;
    	SetComplex(&zm,0,freq[r]);
    ...
    	Mat_Vandermonde (C, NL, &zm);
     
    ...
     
    	ampl[r] = 2.0 * AbsComplex(&c->P[0][0]);
    	arg[r] = ArgComplex(&c->P[0][0]);
    ...
    	}
    ...
    }
    Donc j'execute ma fonction et le programme s'arrete ici: " ampl[r] = 2.0 * AbsComplex(&c->P[0][0]);". J'ai bien d�clar� ampl comme il faut mais � parrament cette ligne provoque l'arret du programme. Aussi, j'ai remarqu� que si je pla�ait cette ligne au pire, avant " Mat_Vandermonde (C, NL, &zm);", la ligne s'executait. Si je la place apr�s: bug. J'ai pens� que ampl �tait perdue mais elle est bien d�clar�e je pense. Les fonctions commencant par Mat_... sont d�clar�es et d�ffinies dans un autre fichier, il en est de m�me pour les fonctions complex.

    Merci � qui m'aidera.


  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    la portion de code ne permet pas d'identifier le bug mais nous renseigne sur sa nature ...:
    beaucoup de pointeurs utilis�s ,donc problabement un d�passement de m�moire ,ou affectation illicite de la m�moire (pointeur null,no man's land..)
    il faudrait que tu verifies les adresses obtenues pour chaque indicage .
    ce genre de code me fait plutot penser � du C qu'a du C++ ,pourquoi ne pas utiliser des references plutot que des pointeurs ?
    pour infos:
    http://c.developpez.com/faq/vc/?page...gPointeurValue


  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    241
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 241
    Par d�faut
    Int�ressant le ying yang avec le rond blanc dans le blanc et le noir dans le noir: il y a du bien dans le bien et du mal dans le mal!
    Oui, effectivement c'est du C. Tu me dis qu'il y a beaucoup de pointeurs, y a t il une restriction concernant leur nombre, ou une r�gle � ce sujet que j'aurai
    bafou�e me valant la r�putation de d�butant du pointeur. Peux tu m'�clairer � ce sujet? Merci pour le lien. Le probl�me peut il �tre li� � une affectation illicite de m�moire si je m'aper�ois qu'en pla�ant la ligne "ampl[r] = 2.0 * AbsComplex(&c->P[0][0]); " avant "Mat_Vandermonde (C, NL, &zm);", ampl[r] est bien prise en compte?

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    Citation Envoy� par petdelascar
    Int�ressant le ying yang avec le rond blanc dans le blanc et le noir dans le noir: il y a du bien dans le bien et du mal dans le mal!
    Oui, effectivement c'est du C. Tu me dis qu'il y a beaucoup de pointeurs, y a t il une restriction concernant leur nombre, ou une r�gle � ce sujet que j'aurai
    bafou�e me valant la r�putation de d�butant du pointeur. Peux tu m'�clairer � ce sujet? Merci pour le lien. Le probl�me peut il �tre li� � une affectation illicite de m�moire si je m'aper�ois qu'en pla�ant la ligne "ampl[r] = 2.0 * AbsComplex(&c->P[0][0]); " avant "Mat_Vandermonde (C, NL, &zm);", ampl[r] est bien prise en compte?
    non il n'y a pas de restriction mais en C++ on pr�f�re le passage par r�f�rence ,c'est une recommandation g�n�rale que je me suis permis de te faire vu que nous sommes sur un forum C++ lol.
    Le probl�me est peut �tre m�me avant ta fonction ...
    Il faut que tu v�rifies :
    -Tous les pointeurs pass�s (adresses valides ? cf mon lien sur l'affectation des pointeurs), et qu'ils g�rent un taille m�moire suffisamment grande (d�bordement m�moire) pour leurs utilisations.
    - Les variables qui indicent les tableaux de pointeurs ce qui m�am�ne � la remarque :

    D�un point de vue conception je vois des choses dangereuses :
    Dans ta fonction tu indices freq[r] avec r ,r qui a l'air d'�tre globale..
    Qui me dit que son indice est valide ?
    Lorsque l'on dispose d'un trop grand nombre d'arguments � passer il vaut mieux utiliser une structure de communication pour la fonction.
    Et surtout �viter les d�pendances externes (variables globales) .


  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    241
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 241
    Par d�faut
    Ok, merci pour ta r�ponse, j'avai effectivement d�clar� b�tement r en dehors de la fonction sans m'en rendre compte. Bonne journ�e gars et merci encore.[/code]

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Cygwin ImageMagic Bug incompr�hensible
    Par belette07 dans le forum Applications et environnements graphiques
    R�ponses: 0
    Dernier message: 28/07/2009, 16h28
  2. Bug incompr�hensible IE6
    Par Lideln75 dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 19/06/2009, 10h22
  3. J'ai besoin d'aide concernant un bug incompr�hensible
    Par Kicker dans le forum GTK+ avec C & C++
    R�ponses: 22
    Dernier message: 23/05/2008, 13h27
  4. [PC] Sockets avec API win32, bug incompr�hensible
    Par ValyGator dans le forum Windows
    R�ponses: 4
    Dernier message: 27/02/2008, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo