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 :

Access violation avec fseek


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Access violation avec fseek
    petit pb de comprehension, je programme la ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fseek(fichier,0L,SEEK_END);
    pour pouvoir pointer un endroit précis de mon fichier texte -> aucune erreur mais quand j'execute, le message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread stopped D.../test.exe : fault : access violation at 0x404553 : write of address 0x12
    je clic sur OK, pis ca m'envoie sur une page bizarre avec comme titre "CPU"
    est-ce qq1 pourrait m'aider, car j'ai vraiment du mal a trouver d'ou vient la faille. :
    merci d'avance a l'ame charitable qui voudra bien m'aider.

    bonne journée a tous

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: pb avec la fonction fseek en C!!..
    Bonjour,
    Citation Envoyé par baleine
    Thread stopped D.../test.exe : fault : access violation at 0x404553 : write of address 0x12
    A première vue, l'introduction à l'adresse 0x404553 essai d'écrire à un endroit qui lui est interdit (d'adresse 0x12), surement un problème d'allocation dynamique ou de saisie. Pour t'en dire plus, il nous faudrai le code du programme (s'il est trop long, enlève ce qui n'est pas nécessaire).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    voici le prog:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void main (void){
    FILE *fichier;
    if ((fichier=fopen("essais.txt","w+t"))=NULL)
    {perror ("fopen");
    exit(1);}
    else {
    float a;
    int i;
    fseek(fichier,0L,SEEK_END);
    fscanf(fichier,"%f",&a);
    fclose(fichier);
    }

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Meric d'utiliser les balises code pour que ça soit plus lisible:
    Citation Envoyé par baleine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void main (void){
    FILE *fichier;
    if ((fichier=fopen("essais.txt","w+t"))=NULL)
    {perror ("fopen");
    exit(1);}
    else {
    float a;
    int i;
    fseek(fichier,0L,SEEK_END);
    fscanf(fichier,"%f",&a);
    fclose(fichier);
    }
    • Les fichiers d'en-tête sont manquant,
    • la fonction main retourne toujours un int,
    • je crois que le paramètre "w+t" de la fonction fopen crée un comportement indéfinie, utilise juste "w",
    • Pour tester une égalité, il faut utiliser l'opérateur double égale ( == ),
    • La varible i ne sert à rien.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci bcp, ca marche....mais maintenant j'ai un autre pb, comment je fais pour ouvrir un fichier avec des données a l'interieur que je veux lire et traiter? car la, avec mon code j'ouvre mon fichier de données, mais ttes mes données disparaissent...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    pardon, c'est bon j'ai trouvé, il fallait mettre "a" au lieu de "w"
    excuse moi je débute, en tout cas, merci bcp bcp pr ton aide!
    bon we!!

  7. #7
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Au lieu de "w+", mettre "a+" en écriture/lecture en fin de fichier, et "r+" en écriture/lecture en début de fichier.

  8. #8
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par baleine
    pardon, c'est bon j'ai trouvé, il fallait mettre "a" au lieu de "w"
    excuse moi je débute, en tout cas, merci bcp bcp pr ton aide!
    bon we!!
    Y a pas de quoi être désolé, tout le monde à le droit d'aprendre, bon week end à toi aussi

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

Discussions similaires

  1. Access violation avec treeview
    Par colorid dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2011, 11h21
  2. access violation avec GtkGLExt en C
    Par superZozo dans le forum GTK+
    Réponses: 5
    Dernier message: 27/04/2010, 17h59
  3. [Lazarus] [0.9.27] Erreur access violation avec TCalendar
    Par ovni76 dans le forum Lazarus
    Réponses: 5
    Dernier message: 22/07/2009, 12h17
  4. Réponses: 2
    Dernier message: 17/12/2008, 22h30
  5. Problème d'Access Violation avec lfind
    Par beegees dans le forum C
    Réponses: 4
    Dernier message: 22/01/2008, 15h00

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