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 :

des exceptions non gérer


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut des exceptions non gérer
    Bonjour,
    tout d'abord je vous précise mon probleme et ensuite je pose mes questions.
    en commencant,je developpe une application ou je doit charger des images(jpeg et bmp) et faire des traitement sur tel que ( analyse de la texture) et ensuite enregister cette derniere et ses informations dans une base de données et méme j'enregiste ces images dans les tables.
    le probleme qui se pose est lors du chargement des images je peut faire ca 2fois ou 3fois et ensuite ca me donne une exception "opération de pointeur incorrecte".
    j'aimerai savoir c'est due a quoi?merci pour vos réponses.

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 76
    Par défaut
    Ca pourais etre de l'allocation dynamique mal géré, ou de l'allocation statique non accésible, mais faudrais un bout de code pour bien comprendre.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    merci pour votre réponse mais y'a t-il un moyen pour libérer la mémoire a chaque fois qu'on fait le chargement d'une image.???

  4. #4
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,

    Le mieux n'est il pas de livrer /dévoiler un bout de code significatif afin que les bonnes âmes du forum puissent comprendre et répondre ?


    ++

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 76
    Par défaut
    Au pas a pas doit bien y avoir un bout de code qui plante, determine le et post ce code.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    voici le code d'en je doute que c'est d'ici l'erreur.
    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
     try
     {
    mat=new int *[height];
    for(int i=0;i<=height;i++) {mat[i]=new int [width];}
    }
    catch(...)
    {
    ShowMessage("L'allocation dynamique n'a pas pue etre réalisé");
    return false;
    }
      for(int i=0;i<height;i++)
      {
        for(int j=0;j<width;j++)
        {
          TColor col=bmp->Canvas->Pixels[i][j];
          int R=GetRValue(col);
            int G=GetRValue(col);
              int B=GetRValue(col);
              int NG=(0.299* R) + (0.587*G)+ (0.114* B);
              mat[i][j]=NG;
     
        }
      }
      //Appel de la fonction Remplir Matrice-----------------------------------------------------
    for(int i=1;i<height-1;i++)
      {
       for(int j=1;j<width-1;j++)
       {
     
      a=   mat[i][j];
       b=   mat[i+1][j];
        RemplirMatrice(1,a,b);
     
         b=   mat[i+1][j+1];
       RemplirMatrice(2,a,b);
     
     
         b=   mat[i][j+1];
        RemplirMatrice(3,a,b);
     
        b=   mat[i-1][j+1];
        RemplirMatrice(4,a,b);
     
      }}
    delete mat;
     return true;
    et la fonction remplir matrice est la suivante
    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
     
     if(a==1)
           {   
            mat1[b][c]=mat1[b][c]+1;
            mat1[c][b]=mat1[c][b]+1;
            }
         else
         {
          if(a==2){ 
                    mat2[b][c]=mat2[b][c]+1;
                    mat2[c][b]=mat2[c][b]+1;
                    }
           else
           {
            if(a==3){
                     mat3[b][c]=mat3[b][c]+1;
                  mat3[c][b]=mat3[c][b]+1;
                   }
            else
            {
            if(a==4){
     
                 mat4[b][c]=mat4[b][c]+1;
                    mat4[c][b]=mat4[c][b]+1;
                    }
            }
           }
     
    }
    ainsi que la déclaration des matrices float mat1[256][256], mat2[256][256], mat3[256][256], mat4[256][256];
    merci pour vos réponses

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    alors aucune réponse???

  8. #8
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    mat=new int *[height];
    for(int i=0;i<=height;i++) {mat[i]=new int [width];}
    Ça ne serait pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mat=new int *[height];
    for(int i=0;i<height;i++) {mat[i]=new int [width];}
    Parce que là tu fait un acces en dehors de ton tableau.

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    merci pour votre réponse

  10. #10
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,

    Rien a voir avec l'erreur, mais dans la deuxième partie de ton code, tu devrais surement remplacer l'enfilade de "if" par un "switch()" sur la variable 'a' (a priori ca devrais être possible)

    @+

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 131
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Bonjour,
     
    Rien a voir avec l'erreur, mais dans la deuxième partie de ton code, tu devrais surement remplacer l'enfilade de "if" par un "switch()" sur la variable 'a' (a priori ca devrais être possible)
    merci pour votre précision c'est vrai le switch c'est mieu que l'inbrication des "if".

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

Discussions similaires

  1. problème d'exception non gérer
    Par narutoe dans le forum C#
    Réponses: 4
    Dernier message: 15/12/2011, 12h38
  2. À propos des exceptions non-gérées
    Par Médinoc dans le forum C++
    Réponses: 3
    Dernier message: 10/06/2008, 17h13
  3. [POO] Gérer les erreurs MySQL par des exceptions
    Par thepooh dans le forum Langage
    Réponses: 2
    Dernier message: 04/04/2008, 11h16
  4. Réponses: 2
    Dernier message: 05/01/2006, 10h43

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