J'ai posté un question sur la validation de l'accessibilité d'un pointeur. La conclusion était soit d'utiliser IsBadReadPtr pour vérifier le pointeur, soit SEH pour attraper l'exception (et de préférence de n'utiliser ni l'un ni l'autre, et de déboguer l'application, mais ce n'est pas le problème ici).
IsBadReadPtr est dit mauvais parce que, entre autres raisons, il essaierait de lire le pointeur, et attraperait toute exception. Il pourrait attraper une exception de page de garde de la pile et l'empêche ainsi d'atteindre le gestionnaire de mémoire, qui aurait dû agrandir la pile.
Si j'utilise SEH et que j'attrape uniquement les exceptions EXCEPTION_ ACCESS_VIOLATION, cela créerait-il le même problème ?
Autre chose : quelles sont les implications de l'utilisation du SEH ? Ce site L'article suggère que "le compilateur ne peut pas effectuer d'analyse de flux dans le code protégé par SEH". Qu'en est-il si j'appelle une fonction à l'intérieur du bloc __try. Le compilateur n'optimiserait-il pas du tout la fonction appelée ?