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 :

[débutant]Access violation reading location


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 73
    Points : 41
    Points
    41
    Par défaut [débutant]Access violation reading location
    Bonjour,
    Je suis débutante en C++ et je travaille sur un projet de traitement de fichier wav sur VC++2008.
    J'ai le problème suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unhandled exception at 0xfefefefe in projet2.exe: 0xC0000005: Access violation reading location 0xfefefefe
    Je n'arrive pas à trouver la mémoire concernée, le débugger me dit que le code source n'est pas accessible, toujours est-il que visiblement ça bloque dans le fichier glaux.h à ce niveau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void APIENTRY auxInitDisplayMode(GLenum);

    Avez vous des idées?
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 73
    Points : 41
    Points
    41
    Par défaut Re
    Dans mon programme c'est l'initialisation de l'interface graphique à ce niveau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    auxInitDisplayMode (AUX_SINGLE | AUX_RGB);
    Merci
    Cdlt

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    C'est en général un problème lié à un pointeur non ou mal initialisé. Le problème ne vient peut être pas de là où tu le penses. Ne peux-tu faire un debug pas à pas à partir d'un point où il n'y a pas de problème ? Et si tu ne comprend pas, poste un bout de code un peu plus long pour que l'on puisse voir le contexte.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Pouvez-vous faire du debugging pas à pas dans la fonction "auxInitDisplayMode" ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 73
    Points : 41
    Points
    41
    Par défaut Re
    Ok désolée je suis un peu longue à la détente je découvre le C++.
    En fait on dirait que c'est mon scanf qui libère c... pouvez vous me confirmer?en pas à pas c'est là que ça s'arrete...
    voici une plus grosse partie du main, la partie graphique:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    int init=0;
    int n=0;
    	char c=9;
     
    	while(c!='0')
    	{
    		Display B;
    	B.range(n);
    	system("cls");
    	printf("\n");
    	printf(" +--------------------------------------------+\n");
    	printf(" |                   MAIN MENU                |\n");
    	printf(" +--------------------------------------------+\n");
    	if (init==1)
    	{
    	printf(" |							                  |\n");
    	printf(" |(1) Computing with the FFT                  |\n");
    	printf(" |					                          |\n");
    	printf(" |                                            |\n");
    	printf(" |(c) Clear the display window                |\n");
    	}
    	else 
    	printf(" |       (o) open the display window          |\n");
    	printf(" +--------------------------------------------+\n");
    	printf("\n                                   (0) Quit\n");
     
    	scanf_s("%s",&c);
     
    	switch(c)
    		{
     
    		case '0':
    			exit(0);
    			break;
     
    		case '1':
    			if (init == 1)
    			{
    				Fft(); // appelle FFT menu
    			}
    				break;
     
    		case 'c':
    		case 'C':
    			if (init == 1)
    			{
    Display B;
    			glClear(GL_COLOR_BUFFER_BIT);
    			B.panel();
    			B.axes();
    			glFlush();
    			}
    			break;
     
    		case 'o':
    			if (init == 0)
    			{
    Display B;
    			B.myinit(); // crée une fenêtre opengl 
    			B.makeRasterFont();
    			init=1;
    			glClear(GL_COLOR_BUFFER_BIT);
    			B.panel();
    			B.axes();
    			glFlush();
    			}
    			break;
     
    		}
    	}

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    Effectivement il s'agissait de scanf_s j'ai changé par un cin ça fonctionne:
    Merci encore
    Cdlt
    Gate35

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par gate35 Voir le message
    Effectivement il s'agissait de scanf_s j'ai changé par un cin ça fonctionne:
    Merci encore
    Cdlt
    Gate35
    D'une manière plus globale, tant qu'à faire du C++ autant utiliser les flux partout (std::cin et std::cout) ainsi que les chaînes std::string, et les différents conteneurs.

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

Discussions similaires

  1. [OCILIB] OCI_LobRead erreur Access violation writing location
    Par capic dans le forum Interfaces de programmation
    Réponses: 3
    Dernier message: 05/12/2011, 08h52
  2. "access violation reading location"
    Par Vanito dans le forum C
    Réponses: 7
    Dernier message: 30/06/2011, 19h49
  3. Access violation reading
    Par rXpCH dans le forum C++
    Réponses: 6
    Dernier message: 22/06/2011, 12h07
  4. Réponses: 6
    Dernier message: 15/05/2009, 14h07
  5. Access violation writing location 0x00000010.
    Par dhoorens dans le forum C++
    Réponses: 6
    Dernier message: 29/12/2006, 11h23

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