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

Delphi Discussion :

utilisation des pointeurs


Sujet :

Delphi

  1. #1
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut utilisation des pointeurs
    Salut

    Pour une fois que j'essaie de manipuler des pointeurs, ça foire
    Voici le code
    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
    type
      PString=^string;
      TGagnants=set of TJoueur;
    (...)
    
    function vainqueur:TGagnants;
    begin
      result:=[];
      if(ansicontainsstr(jeuh,'VVVV'))
      or(ansicontainsstr(jeuh,'RRRR'))
      then stringjeu:=@jeuh
      else if(ansicontainsstr(jeuv,'VVVV'))
           or(ansicontainsstr(jeuv,'RRRR'))
           then stringjeu:=@jeuv
           else if(ansicontainsstr(jeud,'VVVV'))
                or(ansicontainsstr(jeud,'RRRR'))
                then stringjeu:=@jeud
                else if(ansicontainsstr(jeuf,'VVVV'))
                     or(ansicontainsstr(jeuf,'RRRR'))
                     then stringjeu:=@jeuf
                     else exit;
    
      if(ansicontainsstr(stringjeu^,'VVVV'))
      then result:=[vert];
      if(ansicontainsstr(stringjeu^,'RRRR'))
      then result:=[rouge];
      if((result=[])and(not ansicontainsstr(jeuh,' ')))
      then result:=[aucun];
    end;
    L'EDI compile sans pb mais ça plante sur la ligne soulignée
    avec lecture de l'adresse 2D2D2D48

    Si qqn a une idée lumineuse (c'est la période)... Merci
    Choisir, c'est renoncer...

  2. #2
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    si je ne me trompe pas, comme dans stringjeu tu mets une adresse et non pas l'objet pointé à cette adresse, tu ne dois pas mettre le ^ .

    Edit: ah non je raconte n'importe quoi, ce n'est pas l'adresse que tu veux utiliser en paramètre. Alors je sèche.
    Développeur écolo, je suis pour le développement durable.

  3. #3
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Merci quand même

    [HS] Au fait, j'attends de voir ta version corrigée du défi pour voir si tu as bien trouvé le bug que j'ai vu, et pas un autre [/HS]
    Choisir, c'est renoncer...

  4. #4
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    Pas de prob je le mets de suite.
    Développeur écolo, je suis pour le développement durable.

  5. #5
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Utiliser des pointeurs sur des string, c'est déjà dangereux en soi. En effet, les string sont déjà des pointeurs gérés automatiquement par Delphi. Et on ne sait pas toujours prévoir exactement comment cela va se passer. Donc il vaut mieux éviter. A moins d'utiliser des ShortString.

    En outre, je ne vois pas du tout l'à propos des pointeurs dans ton code, tu pourrais très bien recopier la chaîne en question, puisque tu ne la modifies pas après au moyen de ce pointeur.
    Si la raison est pour toi une question de performances, c'est pas la peine non plus. Une copie de string à string ne copie que la référence, et incrémente le compteur de références de la chaîne en question. Ce n'est que lorsque la copie (ou l'original) est modifiée que les chaînes sont réellement copiées.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  6. #6
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Salut sjrd

    En effet avec un shortstring ça passe
    Citation Envoyé par sjrd
    En outre, je ne vois pas du tout l'à propos des pointeurs dans ton code, tu pourrais très bien recopier la chaîne en question, puisque tu ne la modifies pas après au moyen de ce pointeur.
    En fait je n'ai montré qu'une partie du code
    Je récupère stringjeu^ dans une autre procédure et j'ai justement besoin de la mofifier
    Et comme ma chaîne est < 256 caractères, un shortstring est parfait

    Merci pour ces éclaircissements
    Choisir, c'est renoncer...

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

Discussions similaires

  1. Utilisation des pointeurs - j'ai un doute
    Par progfou dans le forum C
    Réponses: 10
    Dernier message: 08/07/2008, 14h33
  2. utilisation des pointeurs de type "far"
    Par Flow_75 dans le forum C++
    Réponses: 0
    Dernier message: 25/03/2008, 07h35
  3. utilisation des pointeur
    Par nixonne dans le forum Langage
    Réponses: 2
    Dernier message: 25/08/2006, 09h19
  4. Optimiser l'utilisation des pointeurs
    Par progfou dans le forum C
    Réponses: 65
    Dernier message: 10/03/2006, 11h49
  5. Réponses: 6
    Dernier message: 21/02/2006, 16h47

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