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++Builder Discussion :

std::bad_alloc Exception projet VCL


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 74
    Par défaut std::bad_alloc Exception projet VCL
    lu,
    en essayant d'allouer et de désallouer de la memoire dans une TForm (VCL donc) je tombe sur une exception std::bad_alloc.
    En farfouillant, je n'ai pas trouvé la cause, j'ai donc créé un projet console sans la VCL et la ça passe nikel.

    J essaye d'allouer 100 M dans la memoire (environ) et je crée 2 unsigned char que je ne supprimerai qu'à la fin du test.
    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
     
    unsigned char *truc = NULL,**truc2 = new unsigned char*[100000];
     
        for(int x=0; x<100000; x++)
        {
          try
          {
            truc  = new unsigned char[100000000];
     
            truc2[x] = new unsigned char[2];
     
            delete[] truc;
            truc = NULL;      
          }
          catch(...)
          {
            int bidul = 2;
          }
        }
     
        for(int x=0; x<100000; x++)
     
        {
         delete[] truc2[x];
        }
     
        delete[] truc2;
    l'erreur se produit vers la 21 allocation de <<truc>> chez moi.

    Si vous avez une explication, je suis preneur.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    As tu réellement intérêt à gérer de cette manière ?

    Le bloc mémoire pourrait très bien être alloué en amont de la boucle et libéré en aval.
    Je ne sais pas si c'est conforme au traitement éventuel dans la boucle mais par contre ça me parait plus évident !

    C'est l'idée qui m'est venue, sans pour autant avoir trouvé les raisons du problème qui ressemble à une fuite de mémoire, mais .... ici ... ???

    A plus !

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    mickyoun :
    l'erreur se produit vers la 21 allocation de <<truc>> chez moi.
    Pour info, ça passe nickel chez moi!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 74
    Par défaut
    nous fesons du traitement d'image et nous avons des cas de ce genre.

    Nous avons essayé sous builder c++6.0 et 2006 l'erreur se produit, mais pas sous visual studio 2005.

    PS: le bug ne se produit que dans un projet VCL.

  5. #5
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Citation Envoyé par diogene Voir le message
    Pour info, ça passe nickel chez moi!
    Pourrait tu me dire dans quel condition ce code fonctionne-t-il chez toi, si il fonctionne toujours. Version de BCB, version Windows,...


Discussions similaires

  1. Besoin d'aide avec Exception std::bad_alloc
    Par YohDono dans le forum C++
    Réponses: 2
    Dernier message: 18/05/2013, 18h40
  2. Réponses: 7
    Dernier message: 18/11/2008, 09h12
  3. [debutant c++] std::bad_alloc
    Par Gotmere dans le forum SL & STL
    Réponses: 2
    Dernier message: 28/05/2007, 20h42
  4. [D2005] Projet VCL.net ingérable
    Par Leesox dans le forum Delphi .NET
    Réponses: 9
    Dernier message: 14/05/2006, 15h00
  5. std::bad_alloc :'(
    Par mister3957 dans le forum SL & STL
    Réponses: 25
    Dernier message: 22/03/2006, 21h00

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