begin process at 2012 02 10 17:15:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

vérifier si adresse mémoire valide


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

vérifier si adresse mémoire valide

lundi 15 août 2005 à 14:34:54 | vérifier si adresse mémoire valide

yvescollet

bonjour,

j'aimerais savoir s'il est possible de tester qu'un pointeur contenant une adresse mémoire pointe bien sur une structure existante.
(je dois débugger  une applic qui contient plein de pointeurs ayant une adresse (<> nil) mais qui pointent sur des adresse non valides, et donc ça pete quand je fais des :
if assigned(x) then
  freeandnil(x);

merci d'avance

Yves
lundi 15 août 2005 à 16:00:01 | Re : vérifier si adresse mémoire valide

Zeroc00l

Membre Club
Je ne crois pas que tu puisses.
Si c'est une structure que tu as défini toi-même, alors non.
Codes toi un gestionnaire de classe sinon.. ca va te prendre un p'tit peu de temps mais ça sera toujours reutilisable !


Une astuce toute simple :
Remplace ta struct par une classe.
Definit un vecteur static dans cette classe (qui prend des TObject)
Dans le constructeur ("Create" en general) de cette classe : ajoute "Self" au vecteur.
Dans le destructeur ("Destroy en general) de cette classe  : enelve "Self"  du vecteur
Crée une methode static "function Contains(const TObject obj) : bool;" qui retourne vrai ou faux suivant que l'adresse est dans le vecteur

Soit tu utilise Contains, soit ca te fais chier et tu met le test dans le destructeur
(comme ca marche pour tout les objet)
Cependant si tu le met dans le destructeur ca ne t'aide pas bcp car meme si le test est effectué, et meme si tu affiche un message, l'objet sera detruit.Tu peux cependant mettre un point d'arret si dans le dstructeur tu t'apercois que Self n'est pas dans le vecteur et regarde la pile des appel, tu sauras d'ou viens la destruction d'un mauvais objet

Voili voilo , j'espere que j'ai pas été trop obscure :)
Bonne prog

-={[ Zeroc00l ]}=-
lundi 15 août 2005 à 19:45:55 | Re : vérifier si adresse mémoire valide

Delphiprog

Administrateur CodeS-SourceS
Oh là là ZerocOOl, ici ça cause Delphi mon ami . Pas le C++, ok ?
Aurais-tu attrapé un coup de chaleur ?

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
mardi 16 août 2005 à 06:07:36 | Re : vérifier si adresse mémoire valide

Zeroc00l

Membre Club
ah oui pas bool mais boolean ...
et je suis pas sur mais on peut faire des methodes  statique en delphi ?
Je crois que oui

Et OUI effectivement je suis passé a borland c++
Trop besoin des templates ...

-={[ Zeroc00l ]}=-
mardi 16 août 2005 à 11:06:59 | Re : vérifier si adresse mémoire valide

neodelphi

Membre Club
Lol, c'est vrai que les templates c'est pratiques, voir très très pratique ! Sinon l'idée est pas mal, même si c'est peut-être long à mettre en place (surtout pour modifier un programme). Cependant tu peut toujours vérifier si tes adresses contiennent bien quelque chose de cohérent à l'aide des watch du débugger.

neodelphi
lundi 22 août 2005 à 09:47:34 | Re : vérifier si adresse mémoire valide

Delphiprog

Administrateur CodeS-SourceS
Zerocool : si tu avais vraiment besoin des templates au point de passer à C++ , sans doute n'avais-tu pas lu cet article : Templates in Object Pascal


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.


Cette discussion est classée dans : vérifier, adresse, valide, mémoire


Répondre à ce message

Sujets en rapport avec ce message

Lire adresse précise en mémoire [ par christophedlr ] Bonjour à tous, Je voudrais savoir si il est possible de lire directement la mémoire, a des endroits précis ? adresse internet valide ? [ par LREP ] Bonjour à tous,Je reprend une question posée par :f0xi le 27/11/2005 20:20:37 à savoir :"comment tester une adresse internet" afin de savoir si elle e conversion adresse mémoire [ par PHIL63 ] Bonjour à tous,J'ai une question peut être bête mais après avoir bien cherché je ne trouve rien qui me mette sur la voie... donc...j'ai une adresse mé vérifier adresse IP [ par benabdouinf ] Bonjour, Je voudrais vérifier dans un champ (edit) si une adresse IP avec masque est valide ou pas. J'ai trouvé le code de validation d'une adresse GLFont et adresse mémoire [ par lp0683 ] Bonsoir à tous,bon je vais essayé d'être claire en cette heure tardive ...J'essaye un peu par tout les moyens d'afficher du texte sous OpenGL. J'ai tr Recuprer l'adresse complet d'un noeud enfant TREEVIEW [ par bazbazus ] salut a tous je suis entraint de creer un registre à distance et je veut recuprer ladresse d'un noeud enfant dans un TREEVIEW exemple HKEY_LOCAL_MACHI taille mémoire d'un tableau dynamique de string [ par ni69 ] Bonjour,Est-il possible de connaître exactement la taille mémoire occupée par un tableau dynamique de string ?J'ai cherché un bon moment sans rien tro Execution Delphi 2009 [ par kebabia ] Violation d'acces a l adresse 00000000. lecture de l'adresse 00000000. le voici ce que je recoi comme message d'erreur a l'excution system vista home creation d'une plage d'adresse IP [ par daysara21 ] salut si vous pouvez m'aider comment creer une plage des adresse ip dans un reseau local j'ai utilisé un listeview et imageliste (des ordinateurs) com


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales