LPVOID MyMethod(...);@H_404_7@问题是这个方法有时返回Bad Ptr,我想知道是否有一种方法可以检测到这个,如果返回的值是Bad Ptr. @H_404_7@我试过询问它是否为NulL而没有运气. @H_404_7@我知道如果结果是坏Ptr的唯一方法是在我调试时,我尝试了一些不同的方法,但仍然无法做到.解决方法 不,没有简单的方法来确定指针是否坏. @H_404_7@ @H_404_7@windows确实有IsBadReadPtr,IsBaDWritePtr.这些函数本质上存在缺陷 – 它们仅在调用时确定函数在地址空间中是否可读或可写.它们也可能是security issues的原因,绝对不能使用. @H_404_7@主要问题是没有办法区分仍然可以访问进程的“坏”指针和一个好的指针. @H_404_7@例如, @H_404_7@
int g[5];int somethingElse;voID* GetPointer(){ return &g[5]; // Whoops,off by one.}@H_404_7@& g [5]可能是你进程中的一个有效指针,并且可能指向somethingElse,你将能够访问它而不会崩溃但是写入它会破坏你的状态. 总结
以上是内存溢出为你收集整理的c – 如何验证LPVOID全部内容,希望文章能够帮你解决c – 如何验证LPVOID所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)