内存泄露就是new出来的东西没有delete,我们可以这样:创建动态对象的人尽管使用new来创建对象;使用此对象的人负责释放此内存块。
例如:我和他人共享一个消息队列,他人将消息(new出来的对象)放到消息队列中,他不负责释放;我从消息队列里取消息,我一旦从消息队列里取出一个消息,消息队列里就不再有这个消息,消息的控制权和所有权都在我手上,我在用完之后就应该delete。这样就保证了代码...
分类:
编程语言 时间:
2014-07-14 11:07:27
阅读次数:
217
实验室有要做阶段练习题了,其中有一道改bug题:#include
#include
int main(int, char**)
{
std::vector** ppRandomData = distributeRandomInt(100);
for (unsigned int i=0; i<1000; i++)
{
if (ppRandomData[i])
{
std:...
分类:
其他好文 时间:
2014-07-12 19:46:35
阅读次数:
223
Android内存泄露开篇
先来想这三个问题
内存泄露是怎么回事内存会泄露的原因避免内存泄露
1.内存泄露怎么回事
一个程序中,已经不需要使用某个对象,但是因为仍然有引用指向它垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。
Android的一个应用程序的内存泄露对别的应用程序影响不大。
为了能够使得Android应用程序安全且快速的运行,Android的...
分类:
移动开发 时间:
2014-07-12 17:47:04
阅读次数:
348
c++基础知识 从一个基本的CMyString类讲起,分析了 构造函数 拷贝构造函数 析构函数 "="、"+="、"+"、左"++"、右"++"操作符重载 "<<"输出流友元函数重载 1、实现过程要关注内存泄露(析构)、非法输入值处理(“赋值重载”)、内存溢出异常处...
分类:
编程语言 时间:
2014-07-11 09:35:14
阅读次数:
251
C语言堆内存管理上出现的问题,内存泄露,野指针使用,非法释放指针
(1)开辟的内存没有释放,造成内存泄露
(2)野指针被使用或释放
(3)非法释放指针
(1)开辟的内存没有释放,造成内存泄露,下面的例子就可能造成20个字节的泄露,内存泄露不是一个立即会引发故障的错误,但是
它将消耗系统内存。
void function1()
{
char *pa;
pa = (...
分类:
编程语言 时间:
2014-07-10 19:34:03
阅读次数:
185
转自:http://hi.baidu.com/jasonlyy/item/9ca0cecf2c8f113a99b4981c本文针对 linux 下的 C++ 程序的内存泄漏的检測方法及事实上现进行探讨。当中包含 C++ 中的 new 和 delete 的基本原理,内 存检測子系统的实现原理和详细方法...
分类:
编程语言 时间:
2014-07-07 12:20:23
阅读次数:
217
typedef void (^dd)(void);@property (strong) dd a ;@property (copy) dd a ;__weak id b=self; self.a=^{ NSLog(@"%@",self); };编译器都会有警告:循环引用造成的内存泄露---...
分类:
其他好文 时间:
2014-07-07 09:17:36
阅读次数:
221
和框架部门的同事一起,经过valgrind大量的测试和验证,并没有发现有确切的内存泄露的代码段。对于C和C++程序,出现内存增长,可能我们很自然的就去内存泄露方面去思考,有时候,这种方向可能不一定对。 在解决这个问题的过程中,生成上又出现了另外一个内存增长的问题。这次的现象很明显,就是...
分类:
其他好文 时间:
2014-07-06 22:18:20
阅读次数:
277
??
垃圾回收用来实现内存的自动管理(automatic management),区别于人工管理(manual management)。人工管理内存容易出现的问题:
1)悬垂指针,dangling pointer
2)重复回收,Double free
3)内存泄露,memory leak
历史
垃圾回收的概念及技术由John McCarthy于1959年发明,应用于List...
分类:
其他好文 时间:
2014-07-03 16:34:03
阅读次数:
194