永发信息网

CMemoryState主要功能是什么

答案:2  悬赏:30  手机版
解决时间 2021-04-06 03:04
CMemoryState主要功能是什么...急..........
最佳答案
使用CMemoryState检测内存泄漏 CMemoryState是Visual C++提供的内存检测类,主要用于检测程序中的内存泄漏。CMemoryState具有以下成员函数:CMemoryState::Checkpoint() 设置检测点 CMemoryState::Difference() 比较两个CMemoryState对象 CMemoryState::DumpAllObjectsSince() dump检测点以后所有的对象 CMemoryState::DumpStatistics() 打印内存统计信息 CMemoryState::Checkpoint() 设置检测点 CMemoryState::Difference() 比较两个CMemoryState对象 CMemoryState::DumpAllObjectsSince() dump检测点以后所有的对象 CMemoryState::DumpStatistics() 打印内存统计信息使用CMemoryState检测内存泄漏的步骤很简单,先准备两个对象分别在程序的首尾位置设置检测点,然后调用Difference()得出它们的差异,并将差异打印出来,程序员即可得知程序中内存泄漏的程度。以下是使用CMemoryState的例子,注意观察:查看源代码 拷贝至剪贴板 打印代码void foo() { CMemoryState ms1, ms2, ms3, msd; ms1.Checkpoint(); int *ip = new int [100]; ms2.Checkpoint(); delete [] ip; ms3.Checkpoint(); msd.Difference( ms1, ms2); msd.DumpStatistics(); //未释放内存 TRACE("\r\n"); msd.Difference( ms1, ms3); msd.DumpStatistics(); //已释放内存 } void foo() { CMemoryState ms1, ms2, ms3, msd; ms1.Checkpoint(); int *ip = new int [100]; ms2.Checkpoint(); delete [] ip; ms3.Checkpoint(); msd.Difference( ms1, ms2); msd.DumpStatistics(); //未释放内存 TRACE("\r\n"); msd.Difference( ms1, ms3); msd.DumpStatistics(); //已释放内存 } 其Debug结果如下:0 bytes in 0 Free Blocks. 400 bytes in 1 Normal Blocks. 0 bytes in 0 CRT Blocks. 0 bytes in 0 Ignore Blocks. 0 bytes in 0 Client Blocks. Largest number used: 400 bytes. Total allocations: 400 bytes. 0 bytes in 0 Free Blocks. 0 bytes in 0 Normal Blocks. 0 bytes in 0 CRT Blocks. 0 bytes in 0 Ignore Blocks. 0 bytes in 0 Client Blocks. Largest number used: 400 bytes. Total allocations: 400 bytes. 0 bytes in 0 Free Blocks. 400 bytes in 1 Normal Blocks. 0 bytes in 0 CRT Blocks. 0 bytes in 0 Ignore Blocks. 0 bytes in 0 Client Blocks. Largest number used: 400 bytes. Total allocations: 400 bytes. 0 bytes in 0 Free Blocks. 0 bytes in 0 Normal Blocks. 0 bytes in 0 CRT Blocks. 0 bytes in 0 Ignore Blocks. 0 bytes in 0 Client Blocks. Largest number used: 400 bytes. Total allocations: 400 bytes.可以从输出数据发现,在delete [] p释放内存之前,系统存在内存泄漏(泄漏值为400 bytes),在释放之后,内存泄漏消失了。使用CMemoryState,可以有效地检测到程序中的内存泄漏。
全部回答
任务占坑
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新春祝福语同学,新年同学对同学的祝福【中学
单选题不等式2≤x2-7x十2<10的解集是A.{x︱-
管道丝口漏水怎么办
主要玩吃鸡 NBA2K 是要暗影精灵三还是plus
鄙视朝三暮四女人的句子
大家在六安买领动1.6l精英版挪车多少钱
天使的诱惑中安宰成发现周承和尹在熙睡在一起
陈二综合副食商店地址在哪,我要去那里办事
只要坚持付出就会有汇报吗?
为什么江西农商银行的短信验证码收不到
水泵抽水,4寸,4千瓦,每小时抽水量多少
GMAT考多少分才能上哈佛商学院
从南通到到叠纸桥的公交车是多少路
孔子说三人行必有我师焉,那三人具体都是谁?
安装独立声卡后录歌的问题
推荐资讯
何以解忧唯有杜康中最主要的修辞?
拿的起,要如何放下.英文怎么说
情话最暖心小短句英文,英文情话最暖心短句
上海对外贸易大学是一本??还是二本??
普惠快信手机按揭逾期不还是否会损伤银行征信
软件为什么删不掉,我的手机上有些软件删不掉
为什么国家队要开除王濛?她犯什么错误了?
刀刻剪纸中如何刻小图形?
哪个牌子玻尿酸原液好,玻尿酸原液什么牌子好
公历1971年12月9日晚10点半左右出生,请问五
全民K歌有什么方法让更多的人关注你,成为你
年轻人参加婚礼穿什么 参加婚礼装扮技巧
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?