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

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut L'instruction à "0x0b077dba" emploie l'adresse mémoire "0xffffffff". La mémoire ne peut pas être "read".
    Salut,

    je débute la programmation avec c++/Qt, donc je me suis lancé à coder ma propre application, le seul problème c'est que lorsque j'essaye d'éxecuter le programme sa me renvoie une erreur



    merci de m'aider à trouver une solution, merci d'avance

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut


    Au vu de l'erreur, tu essaies peut-être de déréférencer un pointeur fou (je le comprends comme une tentative de lecture à une adresse mémoire un peu étrange). Il faudrait voir le code pour en être sûr.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Voici le code en entier

    fenprincip.h
    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
    #ifndef FENPRINCIP_H
    #define FENPRINCIP_H
    #include <QWidget>
    #include <QLineEdit>
    #include <QPushButton>
     
    class FenPrincip : public QWidget
    {
    public:
        FenPrincip();
    private slots :
     
    private:
        //à bloquer group + form
        QLineEdit *site1;
        QLineEdit *site2;
        QPushButton *bloquer;
        QPushButton *debloquer;
     
     
     
     
    };
     
    #endif // FENPRINCIP_H
    fenprincip.cpp
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    /* @haytam */
     
    #include "fenprincip.h"
    #include <QFormLayout>
    #include <QGroupBox>
     
    FenPrincip::FenPrincip()
    {
        // à bloquer
        site1 = new QLineEdit;
        bloquer = new QPushButton("Valider le bloquage");
     
     
        QFormLayout *bloquerLayout = new QFormLayout;
        bloquerLayout->addRow("Entrez le site à bloquer :", site1);
     
        QGroupBox *bloquerGroup = new QGroupBox("Bloquer");
        bloquerGroup->setLayout(bloquerLayout);
     
        //à débloquer
        site2 = new QLineEdit;
        debloquer = new QPushButton("Valider le débloquage");
     
        QFormLayout *debloquerLayout = new QFormLayout;
        debloquerLayout->addRow("Entrez le site à Débloquer :", site2);
     
        QGroupBox *debloquerGroup = new QGroupBox("Débloquer");
        debloquerGroup->setLayout(debloquerLayout);
     
     
     
     
     
     
        //layout principal
     
        QVBoxLayout *layoutPrincipal = new QVBoxLayout();
        layoutPrincipal->addWidget(bloquerGroup);
        layoutPrincipal->addWidget(debloquerGroup);
     
     
     
        setLayout(layoutPrincipal);
        setWindowTitle("hWBlocker");
     
        resize(400, 450);
     
    }
    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <QApplication>
    #include "FenPrincip.h"
     
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        FenPrincip fen;
        fen.show();
     
        return app.exec();
    }

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Dans ce cas là, je vous conseille de compiler le programme en "Debug" et de le lancer dans le débogueur (flèche verte avec la loupe dessus).
    Ainsi, lors de l'exécution, le programme va s'arrêter sur le bogue et le débogueur va afficher tout ce qu'il faut savoir pour enlever l'erreur. Cela signifie entre autre (et surement la plus importante) la ligne qui provoque le crash.
    Une fois que vous avez cette ligne, vous allez comprendre rapidement le bogue (je dirai, au vu du code, un pointeur qui n'est jamais alloué (pas de new correspondant)).
    En plus, d'après le message d'erreur, ça serait un pointeur initialisé à -1 ?
    Peut être donc un retour d'une fonction de Qt, qui ne renvoie pas un résultat juste (dans le sens, une fonction de recherche qui ne trouve rien). Enfin, c'est à vous de voir maintenant.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre régulier

    Homme Profil pro
    gerant
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Points : 88
    Points
    88
    Par défaut
    Il faut pas oublier la macro Q_OBJECT

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon, j'ai lancé le débogage et voici les lignes qui perturbent le lancement du programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QFormLayout *bloquerLayout = new QFormLayout;
        bloquerLayout->addRow("Entrez le site à bloquer :", site1);
     
        QGroupBox *bloquerGroup = new QGroupBox("Bloquer");
        bloquerGroup->setLayout(bloquerLayout);
    plus précisemment le pointeur *bloquerLayout, mais je ne vois pas en quoi consiste l'erreur

  7. #7
    Membre régulier

    Homme Profil pro
    gerant
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Points : 88
    Points
    88
    Par défaut
    Chez moi, ton code fonctionne sans probleme et sans rien changer .

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    hmm, c'est absurde

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Faites une recompilation de tout le projet (recompilation complête). Sinon, l'histoire du Q_OBJECT est une bonne idée aussi.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 129
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par baliloo Voir le message
    Chez moi, ton code fonctionne sans probleme et sans rien changer .
    MINGW est beaucoup moins indulgent que g++, et tu utilises probablement ce dernier sur Linux, je me trompe ? Donc non, ce n'est pas absurde, les systèmes gèrent différemment la mémoire.

    J'ai déjà eu de nombreuses fois cette erreur (toujours uniquement sous Windows avec un programme qui tourne à merveille sur Linux), et cela vient de la gestion des ressources qui n'est pas correctement faite. Il faut, comme on l'a dit plus haut, démarrer le programme en Debug pour voir si l'erreur apparaît toujours (ce n'est pas forcément le cas). Sinon essayes de vérifier que tes ressources sont toujours correctement allouées et désallouées lorsque l'objet n'a plus lieu d'exister. L'erreur est fréquente lorsque l'on lance un code plusieurs fois sans tuer le processus responsable de l'allocation.

  11. #11
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    Le constructeur de QWidget n'est pas appellé dans celui de FenPrincip, peut être que les pointeurs internes ne sont pas initialisés? Ou alors le contructeur de la classe parent est appellé automatiquement?

Discussions similaires

  1. Une instruction INSERT EXEC ne peut pas être imbriquée.
    Par alheuredudejeuner dans le forum Développement
    Réponses: 8
    Dernier message: 10/07/2015, 15h51
  2. ne peut pas simplement "aXSLProc.Process(aCursor);"
    Par didier.cabale dans le forum XMLRAD
    Réponses: 16
    Dernier message: 08/03/2006, 12h25

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