妈了个逼, 这段简单的STL都内存泄露了?哪出问题了?

lin_style 2007-05-30 08:57:32
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#include <vector>

using namespace std;


int main()
{

int iarr[]={3,2,5,6,33,4,1,9};

vector<int> arr(iarr, iarr+sizeof(iarr)/sizeof(*iarr));

system("pause");
_CrtDumpMemoryLeaks();
return 0;

}




调试信息如下
VC03

Detected memory leaks!
Dumping objects ->
{53} normal block at 0x00372F20, 32 bytes long.
Data: < > 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00
Object dump complete.
...全文
507 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2007-05-31
  • 打赏
  • 举报
回复
linux -> Valgrind
walkingstick 2007-05-31
  • 打赏
  • 举报
回复
mark~~~
lin_style 2007-05-30
  • 打赏
  • 举报
回复
。。face居然在论坛上。。。。。。

那如果要查内存泄露,在代码中嵌入代码就不太实际了
大家都用什么工具测的呢
foochow 2007-05-30
  • 打赏
  • 举报
回复
你直接在main函数开始的时候加上这个就可以
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
foochow 2007-05-30
  • 打赏
  • 举报
回复
int main()
{
int iarr[]={3,2,5,6,33,4,1,9};
{
vector<int> arr(iarr, iarr+sizeof(iarr)/sizeof(*iarr));
system("pause");
}
_CrtDumpMemoryLeaks();
return 0;
}
foochow 2007-05-30
  • 打赏
  • 举报
回复
诶,不要转牛角尖哦。。_CrtDumpMemoryLeaks();表示的是当前的内存泄漏情况,在你调用这个函数的时候任何这个时刻没有被释放的内存,它都会当做内存泄漏。。
fflush 2007-05-30
  • 打赏
  • 举报
回复
以前的某个帖子里讨论过类似的问题(当然,那个帖子里大部分人都没搞清为什么,但是他们都以为自己搞清了。。。)

#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#include <vector>

using namespace std;


int main()
{

int iarr[]={3,2,5,6,33,4,1,9};

vector<int> arr(iarr, iarr+sizeof(iarr)/sizeof(*iarr));

system("pause");
_CrtDumpMemoryLeaks();
return 0;//这里arr才会析构,内存才会被释放!!

}
lin_style 2007-05-30
  • 打赏
  • 举报
回复
taodm((不能收CSDN社区短信息,请莫浪费精力)) ( ) 信誉:100 Blog 加为好友 2007-05-30 21:24:04 得分: 0


看《STL源码剖析》,关于stl内存管理的章。原因里面都写着呢。



//..能否现在说明一下,偶知道你的是STL高手。 。
taodm 2007-05-30
  • 打赏
  • 举报
回复
看《STL源码剖析》,关于stl内存管理的章。原因里面都写着呢。
lightnut 2007-05-30
  • 打赏
  • 举报
回复
这个不是你的代码的问题.
试以下下面这个, 它会报告你的代码中的内存泄露(如果有, 在这个例子中
当然有.与你的结果比较下, 就知道你原来的内存泄露是MS的问题:)

#ifdef _DEBUG
#ifdef new
#undef new
#endif

#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>

#include <xdebug>

#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
#endif

#include <vector>

using namespace std;


int main()
{

int iarr[]={3,2,5,6,33,4,1,9};

vector<int> arr(iarr, iarr+sizeof(iarr)/sizeof(*iarr));

int * myint = new int[10];

system("pause");

_CrtDumpMemoryLeaks();

return 0;

}
星羽 2007-05-30
  • 打赏
  • 举报
回复
你用什么编译器

coolnick 2007-05-30
  • 打赏
  • 举报
回复
mark,帮顶~~~
lin_style 2007-05-30
  • 打赏
  • 举报
回复
我希望是我的问题
目录 1 前面的话 1 1.1 历史 1 1.2 内容 1 1.3 基础知识 1 1.4 三种境界 1 1.5 STL特点 1 1.6 资源 1 1.7 学习方法 1 2 语言特性 3 2.1 模板 3 2.2 typename 3 2.3 模板类的拷贝构造函数 3 2.4 基本类型数据初始化 3 2.5 异常处理 4 2.6 命名空间 4 2.7 using声明 4 2.8 namespace std 4 2.9 explicit关键字 5 2.10 新的类型转换符 5 2.11 静态常量成员的初始化 6 2.12 时间复杂度O记号 6 3 一般概念 7 3.1 头文件 7 3.2 错误处理和异常处理 7 3.2.1 异常头文件 7 3.2.2 标准异常分类 7 3.2.3 异常规格 8 3.2.4 如何在程序中找出异常类型 8 3.2.5 抛出标准异常和实现自己的异常 8 3.3 配置器 8 4 通用工具 9 4.1 简介 9 4.1.1 类别 9 4.1.2 头文件 9 4.2 Pairs 9 4.2.1 简介 9 4.2.2 示例 9 4.3 auto_ptr 10 4.3.1 作用 10 4.3.2 引入原因 10 4.3.3 声明 10 4.3.4 auto_ptr拥有权的转移 10 4.3.5 示例 11 4.3.6 用途 12 4.4 数值极限 13 4.4.1 引入原因 13 4.4.2 头文件 13 4.4.3 numeric_limits<> 13 4.5 辅助函数 14 4.5.1 max、min 14 4.5.2 swap 15 4.6 头文件 15 4.6.1 15 4.6.2 15 5 STL标准程序库 16 5.1 STL组件 16 5.1.1 分类 16 5.1.2 基本观念 16 5.1.3 好处 16 5.2 容器(containers) 16 5.2.1 分类 16 5.2.2 序列式容器示例 16 5.2.3 关联式容器 18 5.3 迭代器 18 5.3.1 示例 19 5.3.2 迭代器分类 21 5.4 算法 21 5.4.1 区间 22 5.4.2 处理多个区间 22 5.5 迭代器的配接器 24 5.5.1 种类 24 5.5.2 Insert Insertors 24 5.5.3 Stream Iterator 25 5.5.4 reverse iterator 25 5.6 变动型算法 26 5.6.1 删除元素 26 5.6.2 变动型算法和关联式容器 27 5.6.3 算法vs.成员函数 28 5.7 使用者自定义的泛型函数 29 5.8 以函数作为算法的参数 29 5.8.1 示例for_each和transform 29 5.8.2 判断式(predicates) 30 5.9 仿函数 33 5.9.1 什么是仿函数 33 5.9.2 预先定义的仿函数 35 5.10 容器内的元素 36 5.10.1 容器元素的条件 36 5.10.2 value和reference 37 5.11 STL内部的错误处理和异常处理 37 5.11.1 错误处理(Error Handling) 37 5.11.2 异常处理 38 5.12 扩展STL 38 6 STL容器 39 6.1 容器的共同能力 39 6.2 vector 39 6.2.1 vector的能力 39 6.2.2 vector实例 40 6.3 deque 41 6.3.1 Deque的能力 41 6.3.2 Deque的使用时机 41 6.3.3 示例 41 6.4 List 42 6.4.1 list的能力 42 6.4.2 list的操作函数 42 6.4.3 splice函数 43 6.4.4 示例 43 6.5 set和multiset 44 6.5.1 示例 44 6.5.2 set和multiset举例 46 6.6 map和multimap 49 6.6.1 map和multimap的能力 50 6.6.2 将map视为关联式数组 52 6.6.3 map和multimap运用示例 52 6.6.4 综合示例 55 6.7 其它STL容器 57 6.7.1 HashTable 59 6.7.2 引用计数 59 6.8 各种容器的运用时机 61 6.8.1 各种容器的使用时机 61 7 STL迭代器 64 7.1 迭代器头文件 64 7.2 迭代器类型 64 7.2.1 Input迭代器 64 7.2.2 Output迭代器 64 7.2.3 Forward迭代器 65 7.2.4 双向迭代器 65 7.2.5 随机存取迭代器 65 7.2.6 Vector迭代器的递增和递减 67 7.3 迭代器辅助函数 67 7.3.1 advance()可令迭代器前进 67 7.3.2 distance()可处理迭代器之间的距离 68 7.3.3 iter_swap()交换两个迭代器所指内容 68 7.4 迭代器配接器(adapter) 69 7.4.1 逆向迭代器 69 7.4.2 Insert迭代器 72 7.4.3 Stream迭代器 75 7.5 迭代器特性 76 8 STL仿函数 77 8.1 仿函数概念 77 8.1.1 仿函数当做排序准则 77 8.1.2 拥有内部状态的仿函数 78 8.1.3 for_each()的返回值 80 8.1.4 判断式和仿函数 81 8.2 预定义的仿函数 82 8.2.1 函数配接器 82 8.2.2 针对成员函数而设计的函数配接器 83 9 STL算法 85 9.1 算法头文件 85 9.2 算法概览 85 9.2.1 简介 85 9.2.2 算法分类 85 9.3 辅助函数 85 9.4 for_each()算法 86 9.5 非变动性算法 88 9.5.1 元素计数 88 9.5.2 最小值和最大值 88 9.5.3 搜寻元素 89 9.5.4 区间的比较 95 9.6 变动性算法 98 9.6.1 复制元素 98 9.6.2 转换和结合元素 99 9.6.3 互换元素内容 101 9.6.4 赋予新值 101 9.6.5 替换元素 103 9.7 移除性算法 104 9.7.1 移除某些特定元素 104 9.7.2 移除重复元素 105 9.8 变序性算法 107 9.8.1 逆转元素次序 107 9.8.2 旋转元素次序 107 9.8.3 排列元素 109 9.8.4 重排元素 109 9.8.5 将元素向前搬移 110 9.9 排序算法 111 9.9.1 对所有元素排序 111 9.9.2 局部排序 112 9.9.3 根据第n个元素排序 113 9.9.4 heap算法 114 9.10 已序区间算法 115 9.10.1 搜寻元素 115 9.10.2 合并元素 117 9.11 数值算法 120 9.11.1 加工运算后产生结果 120 9.11.2 相对值和绝对值之间的转换 121 10 特殊容器 123 10.1 Stacks 123 10.1.1 核心接口 123 10.1.2 Stack运用实例 123 10.1.3 使用自定义的Stack类 124 10.2 Queue 125 10.2.1 核心接口 126 10.2.2 Queue运用实例 126 10.2.3 使用者自定义的队列 126 10.3 Priority Queue 128 10.3.1 核心接口 128 10.3.2 运用实例 128 10.4 Bitset 129 10.4.1 Bitset运用实例 129 11 Strings 131 11.1 动机 131 11.1.1 示例:引出一个临时文件名 131 11.1.2 例二:引出一段文字并逆向打印 132 11.2 未提供的操作函数 132 11.2.1 大小和容量 132 12 数值 135 12.1 复数 135 12.2 valarray 136 12.2.1 认识valarray 136 12.2.2 valarray的子集 138 13 以stream classes完成输入/输出 143 13.1.1 示例 143 13.2 基本的Stream类别和Stream对象 144 13.3 文件存取 144 13.3.1 重定向 147 13.3.2 用于读写的Stream 147 13.4 String Stream class 148 13.4.1 Stream缓冲区迭代器示例 14 国际化 150149 15 空间配置器

15,447

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧