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 :

Access violation sur un new


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    48
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 48
    Par d�faut Access violation sur un new
    Bonjour � tous,

    J'ai un probl�me lorsque je tente d'allouer une variable avec l'op�rateur "new" ; le message d'erreur suivant appara�t :
    "Project "C:\...\....exe faulted with message : 'access violation at 0x... : write of adress 0x...' Process stoped. Use Step or Run to continue."

    Voici le morceau de code o� l'erreur intervient :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    type_enr *TabEnr = 0;
    TabEnr = new type_enr[tabCartes[numCarte].NbChamps];
    A l'instant o� l'erreur intervient, la variable "tabCartes[numCarte].NbChamps" contient une valeur cens�e (105).

    En esp�rant que vous pourrez m'aider, car je dois dire que je ne vois absolument pas d'o� cela vient. C'est la premi�re fois que j'ai une telle erreur sur un "new". Pourtant j'en ai fait des allocations m�moires...

    Cordialement !

  2. #2
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 268
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 268
    Par d�faut
    Essayes de passer par une variable pour la taille de ton tableau

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    type_enr *TabEnr = 0;
    int taille_tab = tabCartes[numCarte].NbChamps;
    TabEnr = new type_enr[taille_tab];
    Je ne sais pas si cela va solutionner les choses mais � premi�re vue, c'est le seul truc qui pourrait g�ner...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    48
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 48
    Par d�faut
    Merci pour ta r�ponse bakaneko, mais cela n'a pas r�solu mon probl�me... M�me en rempla�ant directement la dimension de mon tableau par une valeur constante (ici 105), j'ai toujours cette erreur...

    Je pr�cise aussi que type_enr est une structure d�finit comme suit :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    struct type_enr
    {
    	char nom[20];
    	char valx[15];
    	char valy[15];
    	char numile[3];
    	char type[2];
    	char gr1[5];
    	char gr2[5];
    	char gr3[5];
    	char attribut[40];
    };
    Tout ce qui a de plus banal...

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par d�faut
    Bonjour,

    essaye ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    type_enr *TabEnr = new type_enr[105];
    bon courage ...

  5. #5
    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
    bonsoir
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    type_enr *TabEnr = 0;
    cette expression n'est pas correcte car l'adresse du ptr est �gale � 0 et non pas son contenu
    l'expression correcte est la suivante
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
     
    type_enr *TabEnr = NULL;
    TabEnr = new type_enr[tabCartes[numCarte].NbChamps];
    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

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    48
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 48
    Par d�faut
    Merci � tous pour vos r�ponses,

    Malheureusement, cela n'a toujours pas r�gl� mon probl�me... Je dois dire que je suis compl�tement perdu...

    Si quelqu'un a une id�e je suis preneur !!

    Cordialement.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Access violation sur destructeur TFrame avant lancement Main
    Par dibadoubi dans le forum C++Builder
    R�ponses: 0
    Dernier message: 08/12/2012, 13h57
  2. Access violation sur une string
    Par Nekkro dans le forum C++
    R�ponses: 11
    Dernier message: 23/01/2012, 08h41
  3. Access violation sur dsnap140.bpl
    Par Ben_Le_Cool dans le forum Langage
    R�ponses: 4
    Dernier message: 29/07/2011, 20h06
  4. R�ponses: 5
    Dernier message: 27/01/2009, 10h58
  5. Access Violation sur un delete
    Par devroot dans le forum C++
    R�ponses: 11
    Dernier message: 29/09/2007, 23h22

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