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

C Discussion :

Mon code marche en mode debugging, mais pas en ex�cution !


Sujet :

C

  1. #21
    Membre �clair� Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par d�faut
    M�me si j'avance mon nouveau projet en parall�le, je reste coinc� quant � celui-ci : personne ne peut m'aider, svp ?

  2. #22
    Expert confirm�

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    D�tails du profil
    Informations personnelles :
    �ge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par d�faut
    d'autre part, � ce sujet, j'avais d�j� signal�, mais je me demande bien pourquoi on met

    et non pas

    ce qui fait quand m�me �conomiser 3 octets par valeur.... (en moyenne )

  3. #23
    Expert confirm�

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    D�tails du profil
    Informations personnelles :
    �ge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par kidpaddle2
    Tr�s int�ressante la comparaison avec le principe d'incertitude... par ailleurs, d'apr�s ce que je vois, le mode debugger allouerait plus de m�moire qu'il n'en est n�cessaire (je suis sous Code::Blocks) ?
    je dirais m�me plus : syst�matiquement l'usage d'un debugger ou d'un outil incluant un debugger modifie le comportement vis-�-vis de la m�moire... car en g�n�ral il "surveille" gr�ce � ses propres mallocs/frees, et est lui-m�me en g�n�ral charg� ce qui modifie signaficativement les segments utilis�s...


    Et enfin c'est un comportement symptomatique bien connu d'un probl�me de fuite de m�moire..

  4. #24
    Expert confirm�

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    D�tails du profil
    Informations personnelles :
    �ge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par d�faut
    et en passant rapidement sur le code original, je m'aper�ois que :

    • Pas de test si les allocations/r�allocations se sont correctement effectu�es.
    • Donc des copies et des frees potentiellement erron�s
    • Une erreur de longueur d'allocation (d�bordement) :

      Code : S�lectionner tout - Visualiser dans une fen�tre � part
      1
      2
          This->list[This->count-1] = malloc( (strlen(path)+1) * sizeof (char));


    En passant en 3 minutes...

  5. #25
    Membre Expert
    Inscrit en
    D�cembre 2004
    Messages
    1 478
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 1 478
    Par d�faut
    Citation Envoy� par souviron34
    ce qui fait quand m�me �conomiser 3 octets par valeur...
    ...mais peut augmenter la taille du code (et le temps d'execution) s'il y a beaucoup de conversion a faire vers int. Si on est limite en memoire, char est bon choix. Sinon, il y a peu de raisons de ne pas utiliser int.

  6. #26
    Expert confirm�

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    D�tails du profil
    Informations personnelles :
    �ge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par DaZumba
    ...mais peut augmenter la taille du code (et le temps d'execution) s'il y a beaucoup de conversion a faire vers int.
    bah � ce compte-l� pourquoi utiliser un bool�en ??

    c'est bien 0 ou 1, si mes souvenirs sont bons

    Donc pourquoi stocker dans une variable qui peut aller jusqu'� INT_MAX ??

    256 valeurs c'est d�j� largement suffisant pour en repr�senter 2....

    Et si il y a beaucoup de conversion vers int c'est qu'on a mal choisi sa variable....

  7. #27
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je rappelle que les param�tres de fonction sont facilement promus en Int, et que les procs les plus rapides ne savent pas faire des op�rations (m�me des comparaisons � z�ro) sur plus petit...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #28
    Membre Expert
    Inscrit en
    D�cembre 2004
    Messages
    1 478
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2004
    Messages : 1 478
    Par d�faut
    Citation Envoy� par M�dinoc
    Je rappelle que les param�tres de fonction sont facilement promus en Int, et que les procs les plus rapides ne savent pas faire des op�rations (m�me des comparaisons � z�ro) sur plus petit...
    ... et je complete que la norme precise que le resultat des operateurs relationnels (< > <= >=) et des operateurs d'egalite (== !=) est de type int (6.5.8, 6.5.9). int est donc un type naturel pour quelque-chose qui se retrouve dans un if()...
    Citation Envoy� par souviron34
    bah � ce compte-l� pourquoi utiliser un bool�en ??
    Exactement. Perso, je n'en ai jamais eu besoin...

  9. #29
    Expert confirm�

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    D�tails du profil
    Informations personnelles :
    �ge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par DaZumba
    ..Exactement. Perso, je n'en ai jamais eu besoin...
    Moi une seule fois, pour compl�ter des types de donn�es (r�els, entier, chaines, char, et bool�en (donc char ) ).

  10. #30
    Membre �clair� Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par d�faut
    Le d�bat portant sur la justification d'un type bool�en fait rage, � ce que je vois, mais je rappelle que ce n'est pas le sujet de ce topic. En revanche, suite � une des r�ponses de souviron34 -que je remercie donc, en plus de ceux qui ont daign� r�pondre ^^ -, que voil� :
    Une erreur de longueur d'allocation (d�bordement) :
    Code C : S�lectionner tout - Visualiser dans une fen�tre � part
    This->list[This->count-1] = malloc( (strlen(path)+1) * sizeof (char));
    Avec cette modification, le programme s'ex�cute sans probl�me, que ce soit en mode release ou debug. Apr�s avoir r�fl�chis un peu par la suite, j'ai �mis l'hypoth�se que cette distinction debug/release soit due � une potentielle initialisation du segment de m�moire utilis� par le programme (par le debugger) � 0. Ainsi, l'absence du caract�re NULL final serait combl�e par sa pr�sence au sein du reste de la m�moire...

    Enfin bref, tout �a pour dire que l'aiguille a finalement �t� trouv�e dans cette botte de foin, et que le sujet est cons�quemment r�solu

    Merci � vous tous.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 2 sur 2 Premi�rePremi�re 12

Discussions similaires

  1. Mon code fonctionne en mode debug et pas en release
    Par teddyalbina dans le forum G�n�ral Dotnet
    R�ponses: 2
    Dernier message: 22/02/2011, 00h16
  2. Code marche sur google chrome mais pas sur ie
    Par evaflint69 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 1
    Dernier message: 29/10/2009, 17h09
  3. projet qui marche en mode "hosted" mais pas sous Tomcat
    Par sdesbure dans le forum GWT et Vaadin
    R�ponses: 3
    Dernier message: 02/02/2009, 23h54
  4. Mon Alias marche sur le Serveur mais pas sur le Client
    Par Aquellito dans le forum Windows Serveur
    R�ponses: 12
    Dernier message: 26/11/2008, 09h49

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