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 :

violation d'acces BORLNDMM.DLL


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 134
    Par défaut violation d'acces BORLNDMM.DLL
    bonjour a tous!! bein voila j'ai eu le message d'erreur suivant :
    violation d'accés à l'adresse 011941E4 dans le module BORLNDMM.DLL
    d'apres se que j'ai compris a peu pres dans aide ,il faut mettre delete
    a la la fin de l'ocation de la memoir "new" !!
    j'ai declarer 2 matrice ainsi:
    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
     
    AnsiString **MatSor; //MATRICE D'INCIDENCE sorti
      try {
          MatSor = new AnsiString*[NbrRegle];
          for (int j = 0; j <NbrRegle; j++)
             {
              MatSor[j] = new AnsiString[NbrRegle];
     
             }
          for (int i = 0; i <NbrFact; i++)
              {
              MatSor[i] = new AnsiString[NbrFact];
              }
           }
       catch(...)
       {
       // ça peut arriver ce genre d'erreur, c pr ça qu'il faut gérer ces exception
       ShowMessage("Erreur lors de l'allocation dynamique de la mémoire pour la matrice de codage");
       return;
       }
    mais les deux matrices je les utilise dans tout les procedure donc je ne peu pas fair delete !!
    mes questions: esque l'erreur est généré par rapport a la declaration des matrices ?
    si c'est le cas esqu'il ya un moyen de le regler sans mettre delete a la fin ?
    merci

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Bonjour
    la violation d'accès me semble parfaitement normale

    tu déclare
    MatSor = new AnsiString*[NbrRegle];
    [/CODE]

    tableau dynamique a une dimension

    et tu lui affecte 2 dimensions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for (int j = 0; j <NbrRegle; j++)
             {
              MatSor[j] = new AnsiString[NbrRegle];
     
             }
    for (int i = 0; i <NbrFact; i++)
              {
              MatSor[i] = new AnsiString[NbrFact];
              }
    si NbrFact >NbrRegle Violation d'accés

    d'autre part Tu utilise un tableau monodimensionel comme un tableau multidimensionnel

    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 134
    Par défaut
    salut!!
    pour que la matrice soit a deux dimension je la declare ainsi?:
    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
     
    AnsiString **MatSor; 
      try {
          MatSor = new AnsiString*[NbrRegle];
          for (int j = 0; j <NbrRegle; j++)
             {
              MatSor[j] = new AnsiString[NbrRegle];
     
             }
         MatSor = new AnsiString*[NbrFact];//j'ajoute cette ligne?
          for (int i = 0; i <NbrFact; i++)
              {
              MatSor[i] = new AnsiString[NbrFact];
              }
           }
       catch(...)
       {
       // ça peut arriver ce genre d'erreur, c pr ça qu'il faut gérer ces exception
       ShowMessage("Erreur lors de l'allocation dynamique de la mémoire pour la matrice de codage");
       return;
       }
    et NbrFact >NbrRegle .
    cette erreur se genere parfoi et d'autre fois non

Discussions similaires

  1. BCB 6 / Violation d'accès après utilisation d'une DLL
    Par a_lincoln54 dans le forum C++Builder
    Réponses: 1
    Dernier message: 28/04/2008, 14h15
  2. Violation d'accès sur oleaut.dll
    Par colorid dans le forum Delphi
    Réponses: 6
    Dernier message: 20/01/2007, 11h32
  3. [DLL] Violation d'acces dans msvbvm60.dll
    Par SubZero2 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 10/04/2006, 13h46
  4. Message de violation d'accès dans la dcc50.dll
    Par cchatelain dans le forum EDI
    Réponses: 17
    Dernier message: 29/11/2005, 18h28
  5. Violation d'accès du module msado15.dll
    Par kobe dans le forum Bases de données
    Réponses: 4
    Dernier message: 19/08/2005, 10h57

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