Accueil > Forum > > > > Comment traiter l'erreur d'un pointeur foireux ?
Comment traiter l'erreur d'un pointeur foireux ?
dimanche 16 mars 2008 à 23:50:06 |
Comment traiter l'erreur d'un pointeur foireux ?

Booster
|
Bonsoir à tous, Alors voilà j'ai une fonction comme suit : bool Fonction (void * ptr, int tailleptr){ char message[2000]; memcpy(message , ptr , tailleptr); //tailleptr < 2000} (J'ai isolé le contexte) Le problème est que cette fonction peut recevoir un pointeur non null et non initialisé :( donc du cou je vais taper dans des zones mémoires illicite et j'ai de beaux messages d'erreur : "memory could not be read..." (Au moment de faire le memcpy()) Comment puis-je traiter cette erreur ? Sachant que le ptr n'est pas null mais n'est pas lisible non plus !? Merci d'avance de vos réponses !
|
|
lundi 17 mars 2008 à 01:48:48 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

Neo_Fr
|
Salut,
Tu peux utiliser IsBadWritePtr:
http://msdn2.microsoft.com/en-us/library/aa366716(VS.85).aspx
Neo_Fr
|
|
lundi 17 mars 2008 à 03:52:49 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

SAKingdom
|
Ce n'est pas le droit en écriture qu'il faut vérifier mais le droit en lecture. IsBadReadPtr. Très important de considérer l'avertissement de MSDN au sujet de ces fonctions. C++ (@++)
|
|
lundi 17 mars 2008 à 10:36:57 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

luhtor
|
Comment est-ce possible de récupérer un pointeur non nul non intialisé ? un pointeur non initialisé doit être mis à NULL.
|
|
lundi 17 mars 2008 à 10:52:01 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

Booster
|
Merci Neo_fr et SAKingdom d'après la MSDN c'est presque pile poil pour mon cas mais malheureusement cela ne marche pas :( snif.
Pour luhtor c'est possible dans le cas où je ne gère en aucun cas l'appelle de ma fonction, c'est windows en quelque sorte qui appelle ma fonction du cou il me passe ce qu'il veut et dans mon cas tout marche ou presque puisque ma fonction est appellée une 15ène de fois et il me passe en paramètre quelque chose du style :
Fonction( 0x0012A430,4); Fonction( 0x0012A2F8,16); Fonction( 0x0012A328,16); .... Fonction(0x71A57980,16); << Addresse foireuse qui me plante l'ittérallement l'application.
Si quelqu'un d'autre à une idée ? (sans comparer les pointeurs if (addr!=0x0012) { //Error } ) :D
Merci d'avance ;)
|
|
lundi 17 mars 2008 à 10:59:28 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

Booster
|
Quand je dis que cela ne marche pas en réaliter il me dit qu'il arrive à lire l'adresse... (IsBadReadPtr return false) et pourtant c'est bien une mauvaise adresse !
|
|
lundi 17 mars 2008 à 12:11:54 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

Booster
|
Sinon avec un try catch n'y à t'il pas possibilité de traiter cette erreur ?
J'ai essayé ceci :
bool Fonction (void * ptr, int tailleptr){ try{ char message[2000]; memcpy(message , ptr , tailleptr); //tailleptr < 2000 }catch(...){ return false; } }
Mais sans succés, me suis-je trompé ? Ou est ce normal que ceci ne marche pas ?
Merci d'avance !
|
|
lundi 17 mars 2008 à 13:42:49 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

Booster
|
C'est si impossible que ça ? :(
|
|
lundi 17 mars 2008 à 13:42:49 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

Booster
|
C'est si impossible que ça ? :(
|
|
lundi 17 mars 2008 à 15:22:43 |
Re : Comment traiter l'erreur d'un pointeur foireux ?

Neo_Fr
|
Tu peux pas poster un peu plus de code?
sinon on trouvera jamais..
Neo_Fr
|
|
Cette discussion est classée dans : fonction, erreur, traiter, ptr, pointeur
Répondre à ce message
Sujets en rapport avec ce message
Au secour ! [ par slashparof ]
Au secour! Je ne comprend vraiment pas le problème visual studio me compile cette fonction correctement, mais mon programme cause une erreur quand j'a
Problème de pointeur [ par sebastienbro ]
Bonjour,G une fonction ki a comme argument un pointeur vers un struct personnalisé.J'aimerais savoir commen je peu faire pour modifier lé éléments de
Pointeur sur fonction envoyé par dll [ par MoDDiB ]
Voila ce que j'ai fais mais ca ne marche pas :Dll :#include BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){ retu
erreur de conception? [ par frdestroyers27 ]
Salut a tous!ca serait pour savoir si je fait une erreur de conception!j'ai un fichier main.cpp avec la fonction WinMain dedans qui contient juste un
Pointeur vers une fonction dans une classe ... [ par MoDDiB ]
Supposons que j'ai la fonctionvoid Fonction(int test,int t);appartenant a la classe Cclass.Quelle est la syntaxe pour creer un pointeur vers cette fon
shellexecute et mfc [ par dambeaufort ]
bonjour,je developpe actuellement une application sous mfc.dans cette application, j'ai besoin de d'ouvrir et de lancer des fichier. Pour se faire j'u
question sur les pointeur et tableau et matrice [ par Battousai ]
bonjour a tous,ma question se porte comme indiqué si dessus sur l'utilisation des pointeur avec les tableau et surtout les matrices ou plus.d'abord j'
Afficher une DialogBox [ par Gabi ]
Donc, j,essai d'afficher une DialogBox juste après que ma fenêtre soit affichée. Mais ça ne marche pas. Aucune erreur de compilation, ni aucune erreur
variable membre non static dans une fonction membre static [ par adrod ]
J'ai une erreur du compilateur: Error C2597. Je suis allé sur msdn pour avoir plus de précision et ils me disent:To access the nonstatic member, you m
pb pointeurs [ par Arnaud16022 ]
bonsoirj'ai un peu de mal avec les pointeurs et ma fonction marche pas trop.Le but est de passer une variable en parametre a une fonction, qui va stoc
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|