摘要:本文简单介绍了C++编程时,大家经常犯得一些内存泄漏方面的编码错误,并给出简单的代码示例。并简要给出了Win32平台下使用检测内存泄漏利器DevPartner BoundsChecker进行检查以发现泄漏代码的详细步骤。值此党的节日,希望对一些迷失在内存泄漏中的同志们有所帮助避免少走弯路。我一...
分类:
编程语言 时间:
2014-10-27 22:52:21
阅读次数:
263
弱引用table与python等脚本语言类似地,Lua也采用了自动内存管理(Garbage Collection),一个程序只需创建对象,而无需删除对象。通过使用垃圾收集机制,Lua会自动删除过期对象。垃圾回收机制可以将程序员从C语言中常出现的内存泄漏、引用无效指针等底层bug中解放出来。我们知道P...
分类:
其他好文 时间:
2014-10-27 17:01:39
阅读次数:
345
最近听了一些关于Memory Leak(内存泄漏)的seminar,感觉有些收获,所以留个记录,并share给朋友。1 什么是Memory Leak。 Memory Leak是指由于错误或不完备的代码造成一些声明的对象实例长期占有内存空间,不能回收。Memory Leak会造成系统性能下降,或造成系...
分类:
其他好文 时间:
2014-10-26 21:01:03
阅读次数:
509
在用visual studio进行界面编程时(如MFC),前台UI我们可以通过MFC的消息循环机制实现。而对于后台的数据处理,我们可能会用到多线程来处理。那么对于大多数人(尤其是我这种菜鸟),一个比较快捷的方法便是选择MFC多线程:AfxBeginThread或者CreateThread来进建立多线程。当一两个线程还是可以得,当有3个或者3个以上的线程出现时,极可能出现内存泄漏。原因分析如下:...
分类:
编程语言 时间:
2014-10-26 17:01:39
阅读次数:
855
常见动态内存错误编译器不能自己主动发现动态内存错误,动态内存错误通常仅仅能在程序执行时才干被捕捉到,并且错误原因不easy查找,错误本身也不easy捕捉,改错难度较大。1.动态内存分配失败却继续操作内存不足等有可能导致动态内存分配失败,所以使用new请求分配动态内存后一定要检查返回地址是否为NULL...
分类:
其他好文 时间:
2014-10-25 10:34:50
阅读次数:
146
要让垃圾收集(GC)回收程序不再使用的对象,对象的逻辑生命周期(应用程序使用它的时间)和对该对象拥有的引用的实际生命周期必须是相同的。在大多数时候,好的软件工程技术保证这是自动实现的,不用我们对对象生命周期问题花费过多心思。但是偶尔我们会创建一个引用,它在内存中包含对象的时间比我们预期的要长得多,这...
分类:
编程语言 时间:
2014-10-24 23:32:25
阅读次数:
421
1 C++内存管理
A
栈上的空间
自生自灭,不用管理
B
堆上的空间
手动new,手动delete,否则产生内存泄漏
2
内存管理的难处
管理原则,谁申请谁释放
...
分类:
其他好文 时间:
2014-10-23 00:03:14
阅读次数:
264
JAVA会产生内存泄露吗?首先,答案是肯定的。Java虽然有垃圾回收器,但依然存在泄漏。
Java内存泄漏跟C/C++内存泄漏的概念不一样:C/C++的内存泄漏是指Malloc了一些资源,最后没有free掉,内存没有回收,这个是真正意义上的内存黑洞;而Java的泄漏指,Java对象的存在对程序已经没有意义,但是对象在程序周期内一直存在,这个可能会导致Java的内存泄漏。
总结原因,大概...
分类:
编程语言 时间:
2014-10-21 19:36:42
阅读次数:
254
OS万岁
1、图书馆书架上有4096本书,其中3072本可以借阅。其余1024本,放在玻璃柜里,不能查阅
2、学生在图书馆内可以阅读3072本中的任意一本,但是必须知道它的索引号
3、自觉的同学在使用完毕后,放回原处
4、不自觉的同学在使用完毕后,没有放回原处,而是丢在阅览室内的课桌上
5、图书馆管理员定时到阅览室内收集散落在课桌上的书籍,然后放回原处
一天贪同学为了做某种统计调研,陆...
分类:
其他好文 时间:
2014-10-21 10:28:08
阅读次数:
128
1.Quartz2D的内存管理使用含有“create”或者“copy”的函数创建的对象,使用完后必须释放,否则将导致内存泄漏。使用不含有“create”或“copy”的函数获取的对象,则不需要释放。如果retain了一个对象,不再使用时,需要讲起release掉。可以使用Quartz2D的函数来指定...
分类:
其他好文 时间:
2014-10-20 23:01:59
阅读次数:
288