博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
_CrtIsValidPointer 问题
阅读量:6756 次
发布时间:2019-06-26

本文共 723 字,大约阅读时间需要 2 分钟。

从微软站点:

 

检查指针有效性下面的示例使用 _CrtIsValidPointer 验证给定的内存范围对于读或写是否有效。

 

 _ASSERTE(_CrtIsValidPointer( address, size, TRUE );

 

下面的示例使用 _CrtIsValidHeapPointer 验证指针指向本地堆(由 C 运行时库的这个实例创建和管理的堆;

 

DLL 可以有它自己的库实例,因而也可以有它自己的、位于应用程序堆之外的堆)中的内存。

 

该断言不仅捕捉空地址或超出边界的地址,还捕捉指向静态变量、堆栈变量和其他任何非本地内存的指针。

 

 _ASSERTE(_CrtIsValidPointer( myData );

 

========

 

从CSDN.NET _CrtIsValidHeapPointer(pUserData)的问题: _CrtIsValidHeapPointer确认内存地址在本地堆。……

 

如果静态链接C运行库,那么,dll拥有一个独立于应用程序(调用它的exe)的本地堆。

 

(所以你上面的程序会Debug Assertion Failed),如果没有定义_DEBUG,那么_CrtIsValidHeapPointer将被预处理器移除。

 

 如果是:Debug Assertion Failed!

 

解决的方法有二:

 

1、动态链接C运行库:

 

2、设置统一的Debug/Release版本(比如全部设置为release版本);

 

(ok) 如果“Assertion Failed”的话,估计程序是会出问题的.

 

 本文来自http://blog.csdn.net/yecao_kinux/archive/2007/03/26/1541740.aspx

你可能感兴趣的文章
POJ 3087 Shuffle'm Up 模拟,看着不像搜索啊
查看>>
你知道 GNU Binutils 吗?【binutils】
查看>>
OC与swift相互调用
查看>>
quartus ii 中文注释乱码解决办法
查看>>
Linux网卡配置与绑定
查看>>
java学习之路--String类方法的应用
查看>>
auto,register,static分析
查看>>
百度BAE JAVA环境项目部署和调试
查看>>
CSS盒模型
查看>>
Log4Net 添加自定义字段并保存到数据库
查看>>
Redis集群(三)Cluster集群
查看>>
NSURLSession
查看>>
JFinal学习 & Gradle配置续 & Tomcat配置
查看>>
CSS进度条
查看>>
android的color值
查看>>
对于linux下system()函数的深度理解(整理)
查看>>
软件设计和开发准备
查看>>
ROS + Kinect2 跑ORB_SLAM2 安装步骤记录
查看>>
纯CSS实现垂直居中的几种方法
查看>>
win7注册表常用设置
查看>>