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 :

plantage programme c


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Billets dans le blog
    3
    Par défaut plantage programme c
    bonjour et bon WE ,
    j'ai une routine qui execute des permutations de lettres ; c'est une routine
    itérative qui consomme peu de mémoire ; alors je me demande pourquoi elle fait
    planter le système : je veux dire que Windows la suspend après un certain temps
    avoisinant les 3 minutes. Windows n'est-il plus un système multitâche préemptif
    capable de laisser un processus pendant un certain temps et de le reprendre ensuite ??

    Pourquoi ce plantage systèmatique ?

    PS : Je pars du principe que le programme est sain car en deça de 12 lettres il fonctionne sans
    problème ,ce qui temps à montrer que c'est uniquement le temps de calcul qui fait planter le système !!

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    c'est quoi exactement tes "permutations de lettres" pour avoir un plantage à partir de seulement 12 char ?

  3. #3
    Membre éclairé
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Salut,

    c'est quoi exactement tes "permutations de lettres" pour avoir un plantage à partir de seulement 12 char ?
    voila le code de la routine :
    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
    24
    25
    26
    27
    28
    29
     
    void    iter(int n,int nbElement,struct noeud *ptr)
    {
        struct  noeud   *p = ptr;
        int     i,niveau = n;
        long    count = 0;
     
    A:  i = nbElement;
        while(i>0)
        {
            if(niveau != nombre_d_items)
            {
                Pile[entree_libre++] = i;
                Pile[entree_libre++] = niveau++;
                Pile[entree_libre++] = nbElement--;
                p = p->suivant;
                goto A;
            B:  p = p->precedant;
                nbElement = Pile[--entree_libre];
                niveau = Pile[--entree_libre];
                i = Pile[--entree_libre];
                /*if(niveau == nombre_d_items-1) {printListe();printf("\t");}*/
                if(++count == 53971002) {printListe();}
                insererApres(supprimerAvantZ(),p);
            }
            i--;
        }
        if(!pileVide()) goto B;
    }

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par exe2bin Voir le message
    Windows n'est-il plus un système multitâche préemptif
    capable de laisser un processus pendant un certain temps et de le reprendre ensuite ??

    Pourquoi ce plantage systèmatique ?

    PS : Je pars du principe que le programme est sain car en deça de 12 lettres il fonctionne sans
    problème ,ce qui temps à montrer que c'est uniquement le temps de calcul qui fait planter le système !!
    Contrairement à toi, je pars du principe que les outils que j'utilise sont corrects, qu'il s'agisse de l'OS ou du compilateur, et que c'est mon programme qui est faux.

    Dans ton cas, ne serait-ce pas tout simplement un bête dépassement, par exemple sur un tableau de 11, 12 ou 13 cases ?

    As-tu lancé ton programme dans un debugger, en faisant du pas à pas pour voir d'où peut provenir le problème ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 318
    Par défaut
    T'es sûr de ne pas avoir de fuite mémoire ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Membre éclairé
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par constitution Voir le message
    effectivement il y a une fuite quelque part
    comment une fuite de mémoire pourrait-elle avoir lieu :
    les caractères (int) sont stockés dans une liste doublement chaînée de taille fixe ;
    la pile mesure 182 int et l'execution en utilise au maximum N * 3 = 36
    avec N=12 lettres ....

  7. #7
    Membre éclairé
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Billets dans le blog
    3
    Par défaut
    ok ! fuite de mémoire trouvée . Merci les amis !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/07/2012, 11h34
  2. Réponses: 3
    Dernier message: 06/04/2011, 13h34
  3. Plantage programme
    Par scottynou dans le forum WinDev
    Réponses: 6
    Dernier message: 25/05/2009, 15h53
  4. plantage programme lors de sa première execution
    Par goffle dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 12/11/2008, 17h25
  5. Réponses: 11
    Dernier message: 02/11/2006, 13h36

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