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

Langage Delphi Discussion :

"Opération de pointeur incorrect"


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut "Opération de pointeur incorrect"
    Bonjour,

    dans mon programme, j'utilise un pointeur.

    Mais, dès que l'application se ferme, delphi m'affiche l'erreur : opération de pointeur incorrecte...
    Pourtant, tout marche bien à priori...

    Faut-il que je libère ce pointeur ?

    Merci de vos réponses !

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    Je met mon code. Peut être cela vous permettra-t-il de m'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function TDialogue.FormatValue(PtrValue: Pointer;
                                   SizeOfValue: Integer): TArrayOfByte;
    begin
      SetLength(Result, SizeOfValue);
      {On récupère dans la mémoire les octets qui se trouvent à l'adresse PtrValue.}
      Move(PtrValue^, Result[0], SizeOfValue);
    end;

  3. #3
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    En principe, le message "opération de pointeur incorrecte" signifie qu'un pointeur est libéré deux fois... Donc que tu fais un Free sur un objet déjà détruit (mais dont le pointeur n'a pas été remis à nil), ou un dispose sur un pointeur déjà libéré...

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    Ben, le soucis, c'est que je ne le libère à aucun endroit...

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 115
    Points : 62
    Points
    62
    Par défaut
    Et bien, figurez vous que j'ai résolu le problème !!!

    Et il n'avait rien à voir avec mon pointeur en fait...

    A un moment dans mon programme, je faisais cette boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i:=0 to Length(MonTableau)
    begin
       ...
    end;
    Vous ne remarquez rien ???

    J'ai oublié de mettre -1 après Length(MonTableau)...

    D'où l'erreur : Opération de pointeur incorrecte...

    C'était pas évident de trouver la solution avec une erreur pareille !

    Mais, bon...
    En tous cas, merci à tous !

    (j'espère au moins que mon problème aidera d'autres personnes !)

    ++

  6. #6
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    et il manque de DO aussi

    un conseil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var N, H : integer;
    begin
      H := High(Tableau);
      for N := 0 to H do 
      begin
        // L = H+1 (add mieux que sub : H = L-1)
      end;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

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

Discussions similaires

  1. Opération de pointeur incorrect
    Par BuzzLeclaire dans le forum Langage
    Réponses: 10
    Dernier message: 26/05/2011, 02h20
  2. Opération de pointeur incorrecte
    Par colorid dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2010, 19h08
  3. Opération de pointeur incorrecte au Raise d'une exception
    Par stanislas dans le forum Débuter
    Réponses: 5
    Dernier message: 24/06/2009, 12h11
  4. Réponses: 21
    Dernier message: 10/07/2008, 13h09
  5. Message d'erreur 'opération de pointeur incorrecte'
    Par Clotilde dans le forum Langage
    Réponses: 3
    Dernier message: 05/06/2008, 10h40

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