_CrtIsValidPointer 问题
从微软站点:
检查指针有效性下面的示例使用 _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
_CrtIsValidPointer 问题的更多相关文章
- c++内存管理错误记录
extern "C" _CRTIMP int __cdecl _CrtIsValidHeapPointer( const void * pUserData ){ if (!pUse ...
- MFC与Qt的内存管理
最近在做MFC向Qt的移植,在内存管理方面遇到了很头疼的问题,虽然不知道问题到底出在哪,先了解下这两个库的内存管理方式.于是转载两篇关于内存管理的文章. 一. Qt内存管理: 在Qt的程序中经常会看到 ...
- VC调试技巧
Visual C++ 的 C 运行时刻函数库标识模板0xCD 已经分配的数据(alloCated Data)0xDD 已经释放的数据(Deleted Data)0xFD 被保护的数据 ...
随机推荐
- windows7下系统保护中出现错误“文件名、目录名或卷标语法不正确。(0x8007007B)“ 以及保护设置列表中出现“Windows7_os(c:)(找不到)”选项时的解决方法
windows7下系统保护功能很是鸡肋,有事会出现一下两个问题: 1.出现错误“文件名.目录名或卷标语法不正确.(0x8007007B) 2.保护设置列表中出现“Windows7_os(c:)(找不到 ...
- 利用AVL树实现搬箱问题的best fit策略
//my.h //定义两个数据类型,货物Goods,箱子Box #include <vector> #include <cstddef> #include <iostre ...
- [UNIX环境高级编程](第三版)中apue.h的问题
编译 gcc -g myls.c 时,报错 ‘找不到头文件 apue.h’ apue.h是作者自己写的一个文件,系统不自带.其中包含了常用的头文件,以及出错处理函数的定义. 需要到 http://ww ...
- Linux 内核 链表 的简单模拟(2)
接上一篇Linux 内核 链表 的简单模拟(1) 第五章:Linux内核链表的遍历 /** * list_for_each - iterate over a list * @pos: the & ...
- PHP 测试程序运行时间 microtime函数用法
PHP microtime() 函数PHP Date / Time 函数定义和用法microtime() 函数返回当前 Unix 时间戳和微秒数.语法microtime(get_as_float)参数 ...
- Java多线程(六) 线程系列总结
多线程系列终于终结得差不多,本人对该系列所做的总结大致如下: 线程锁模块耗费了大量的时间,底层的AQS实现比较复杂.仍然没有时间总结源码部分,能够坚持写下这么几个篇幅的内容真心佩服自己....希望继续 ...
- RequireJS入门与进阶
RequireJS由James Burke创建,他也是AMD规范的创始人. RequireJS会让你以不同于往常的方式去写JavaScript.你将不再使用script标签在HTML中引入JS文件,以 ...
- Delphi Base64 编解码函数
Delphi 自带 Base64 编解码的单元, EncdDecd这个单元提供两套四个公开函数: 对流的编解码:procedure EncodeStream(Input, Output: TStrea ...
- 1062 Talent and Virtue (25)
/* L (>=60), the lower bound of the qualified grades -- that is, only the ones whose grades of ta ...
- C语言数据结构之栈:中缀表达式的计算
*注:本人技术不咋的,就是拿代码出来和大家看看,代码漏洞百出,完全没有优化,主要看气质,是吧 学了数据结构——栈,当然少不了习题.习题中最难的也是最有意思的就是这个中缀表达式的计算了(可以算+-*/和 ...