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 :

Erreur d'allocation mémoire


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 28
    Par défaut Erreur d'allocation mémoire
    Bonjour,

    Tout d'abord, j'aimerais m'excuser si je n'ai pas poster au bon endroit (et que l'on m'aiguille pour la prochaine fois)

    Mon problème est le suivant, je développe une application qui à pour but de lancer Robocopy, un outil de windows pour copier des dossiers, le code ne contient, d'après Visual Studio 2010, aucune erreur, mais lors de la compilation, il m'affiche le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Robocopy.exe'*: Chargé 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
    'Robocopy.exe'*: Chargé 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
    'Robocopy.exe'*: Chargé 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
    'Robocopy.exe'*: Chargé 'C:\Windows\SysWOW64\msvcp100d.dll', Les symboles ont été chargés.
    'Robocopy.exe'*: Chargé 'C:\Windows\SysWOW64\msvcr100d.dll', Les symboles ont été chargés.
    Exception de première chance à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: std::bad_alloc à l'emplacement mémoire 0x001fefb4..
    Exception de première chance à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: std::bad_alloc à l'emplacement mémoire 0x001fe71c..
    Exception de première chance à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: [rethrow] à l'emplacement mémoire 0x00000000..
    Exception non gérée à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: std::bad_alloc à l'emplacement mémoire 0x001fe71c..
    Le programme '[5480] Robocopy.exe: Natif' s'est arrêté avec le code -529697949 (0xe06d7363).
    Quelqu'un pourrait m'aider s'il vous plait ?

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 122
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Votre code envoie des exceptions, ce qui est souvent signe que vous avez fait une erreur.
    Exception de première chance à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: std::bad_alloc à l'emplacement mémoire 0x001fefb4..
    Exception de première chance à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: std::bad_alloc à l'emplacement mémoire 0x001fe71c..
    Exception de première chance à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: [rethrow] à l'emplacement mémoire 0x00000000..
    Exception non gérée à 0x76d0b9bc dans Robocopy.exe*: Exception Microsoft C++*: std::bad_alloc à l'emplacement mémoire 0x001fe71c..
    Pour les récupérez, vous pouvez tenter de rajouter des blocs try / catch. Mais que cela ne vous serve uniquement à trouver d'où vienne les exceptions et non à les cacher.
    Sinon, peut être il est possible de mettre un point d'arrêt au lancement de l'exception ... je ne suis pas sur (peut être une option de Visual )
    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.

  3. #3
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    Citation Envoyé par LittleWhite Voir le message
    Sinon, peut être il est possible de mettre un point d'arrêt au lancement de l'exception ... je ne suis pas sur (peut être une option de Visual )
    F9 sur la ligne ou un clic dans la marge, ça fait apparaître un point rouge. Pour l'automatique, http://msdn.microsoft.com/en-us/library/d14azbfh.aspx. Sinon, tu as aussi la solution exprimée par http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx.

    Robocopy.exe, c'est ton exécutable ou celui que tu essayes de lancer (on ne sait jamais) ?
    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 !

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 28
    Par défaut
    Bonjour et merci pour vous réponses.

    En effectuant un débogage pas à pas, je vois que l'erreur survient lorsque je rassemble plusieurs string sous une variable string.

    Je parcours mon fichier de config, je récupere le répértoire source, le répértoire destination, le nom du programme que je lance et les parametres du programme.

    Je rassemble toutes ces string sous une variable ce qui me donne :
    programmeComplet = programme + source + dest + param;

    L'erreur survient ici meme. Je pense qu'il s'agit d'une erreur du compilateur car cette concaténation fonctionne sous Dev-C++.

    J'appel ensuite la variable programmeComplet dans la fonction system(programmeComplet.c_str() );

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par Sagee Voir le message
    Bonjour et merci pour vous réponses.

    En effectuant un débogage pas à pas, je vois que l'erreur survient lorsque je rassemble plusieurs string sous une variable string.

    Je parcours mon fichier de config, je récupere le répértoire source, le répértoire destination, le nom du programme que je lance et les parametres du programme.

    Je rassemble toutes ces string sous une variable ce qui me donne :
    programmeComplet = programme + source + dest + param;

    L'erreur survient ici meme. Je pense qu'il s'agit d'une erreur du compilateur car cette concaténation fonctionne sous Dev-C++.

    J'appel ensuite la variable programmeComplet dans la fonction system(programmeComplet.c_str() );
    Je doute très sincèrement qu'il s'agisse d'une erreur du compilateur, meme si celui fournit par devC++ est tout aussi obsolète que l'EDI lui-même

    Pourrais tu nous fournir le code de la fonction dans laquelle tu effectues cette concaténation, cela nous permettra peut etre de te donner des idées utiles
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 28
    Par défaut
    J'ai entierement réécris mon programme, ne voyant pas mon erreur, et cela fonctionne... Je ne sais pas d'ou viens mon erreur cependant..
    Surement un problème de déclaration de variable char* ou string.

    En tout cas, merci pour vos réponses, et si je trouve mon erreur je vous la ferais parvenir afin de pouvoir éclaircire tout ca.

    Encore merci

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

Discussions similaires

  1. [WD12] Erreur allocation mémoire
    Par Christophe Charron dans le forum WinDev
    Réponses: 12
    Dernier message: 08/10/2012, 08h55
  2. Erreur d'allocation mémoire - GTK+
    Par Jazzero dans le forum Débuter
    Réponses: 13
    Dernier message: 13/07/2009, 18h33
  3. C++, erreur d'allocation dynamique de mémoire
    Par YuGiOhJCJ dans le forum C++
    Réponses: 8
    Dernier message: 20/02/2009, 11h51
  4. erreur d'allocation de mémoire?
    Par ulnar dans le forum C
    Réponses: 17
    Dernier message: 18/05/2007, 09h36
  5. Erreur Allocation mémoire
    Par Thordax dans le forum C++
    Réponses: 10
    Dernier message: 05/04/2006, 21h29

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