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 :

Comment allouer de la memoire sans connaitre la taille


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Par défaut Comment allouer de la memoire sans connaitre la taille
    bonjour,
    je sais que le titre peut paraitre bizarre mais voila mon soucis:
    j'utilise une fonction d'une DLL qui est du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FEISC_0xB0_ISOCmd(iReaderHand, cBusAdr, cReqData, iReqLen, cRspData, iRspLen, iDataType);
    avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        cRspData:=strAlloc(37);
        iReaderErr:=FEISC_0xB0_ISOCmd(iReaderHand, cBusAdr, cReqData, iReqLen, cRspData, iRspLen, iDataType);
        Memo6.Lines.Add(cRspData);
        strDispose(cRspData);
    La fonction me retourne cRspData (PChar) et iRspLen (Integer) (la longueur de cRspData).

    Cette fonction fait partie de la prog d'un lecteur RFID, 37 est la longueur d'un identifiant (pour 1 tag). J'ai desormais plusieurs tags donc une taille qui varie en fonction du nombre de tag.

    Comment faire pour allouer la memoire de cRspData sans que le pointeur pointe ailleurs que sur cRspData? Est t'il possible de pointer qqpart avant la fonction puis d'allouer la taille memoire juste apres la fonction?

    Merci d'avance.

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    En principe, quand on travaille avec des buffer de taille inconnue, on alloue une taille qui conviennent dans tous les cas et on passe cette taille en argument de la procédure afin de récupérer un code erreur si cette taille est dépassée.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 21
    Par défaut
    ok, mais le probleme, c'est que la fonction est dans une DLL donc impossible de passer la taille. je vais allouer une grande valeur en esperant que ca suffise...

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/07/2014, 13h55
  2. Center un bloc verticalement sans connaitre sa taille
    Par lolop dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 27/05/2011, 14h37
  3. Réponses: 0
    Dernier message: 24/04/2009, 10h34
  4. [JVM] Comment allouer de la mémoire à la JVM ?
    Par emie31 dans le forum Général Java
    Réponses: 4
    Dernier message: 20/01/2006, 18h31
  5. Créer un buffer sans connaitre la taille?
    Par barucca dans le forum C++
    Réponses: 11
    Dernier message: 28/04/2005, 20h56

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