悬垂指针:1:提出的原因:请看下面的代码片段:int *p=NULL;void main(){ int i=10;p=&i; cout #include #include #include using namespace std;int main(void) { ch...
分类:
其他好文 时间:
2015-03-13 18:25:33
阅读次数:
260
C++ 智能指针
flyfish 2015-3-1
使用原始指针进行显示内存管理在性能上有优势,但容易出错。诸如 野指针,重复释放,内容泄露等。
C++为了在编程语言上支持更好的内存管理机制,C++98提供了auto_ptr,因为auto_ptr的缺点在C++11中被废弃,C++11提供了
unique_ptr,shared_ptr,weak_ptr等智能指针在自动回收堆分配的内存,智能指...
分类:
编程语言 时间:
2015-03-01 17:09:47
阅读次数:
253
异常安全的代码是指,满足两个条件1异常中立性 :是指当你的代码(包括你调用的代码)引发异常时,这个异常 能保持原样传递到外层调用代码。(异常中立,就是指任何底层的异常都会抛出到上层,也就相当于是异常透明的。)2.异常安全性:抛出异常后,资源不泄露,抛出异常后,不会使原有数据恶化(例如正常指针变野指针...
分类:
编程语言 时间:
2015-02-26 11:28:37
阅读次数:
291
浅拷贝:就是给对象中的每个成员变量进行复制, 就是把A1类中的变量直接赋给A2类中变量, 属于值传递, 但是涉及到有指针类型的成为, 它们指向的是同一块内存. 这就出现了问题:当B把内存释放了(如:析构), 这时A内的指针就是野指针了, 出现运行错误. 深拷贝:就是不仅使用值传递, 而是要每个变量...
分类:
编程语言 时间:
2015-02-14 23:48:49
阅读次数:
264
本文目录一、什么是空指针和野指针二、野指针和空指针例子说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略。学习本专题之前,建议先学习C...
分类:
编程语言 时间:
2015-02-13 00:13:37
阅读次数:
183
说到Native Languages就不得不说资源管理,因为资源管理向来都是Native Languages的一个大问题,其中内存管理又是资源当中的一个大问题,由于堆内存需要手动分配和释放,所以必须确保内存得到释放,对此一般原则是“谁分配谁负责释放”,但即便如此仍然还是经常会导致内存泄漏、野指针等等...
分类:
编程语言 时间:
2015-02-09 19:51:05
阅读次数:
320
最近又遇到一个奇葩问题,程序在自己的开发机器和某些机器上运行完好,但是在测试人员的几台机器上运行就直接推出了。开始以为是出现了野指针,因为delete野指针时程序会直接退出。代码翻来覆去过来即便确认没有野指针后问题就陷入了死循环。经过多次调试我发现在我的机器上虽然不崩溃,但是delete对象指针的时...
分类:
编程语言 时间:
2015-02-06 18:19:27
阅读次数:
176
内存泄漏 用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。 注意:内存泄漏是指堆内存的泄漏。 简单的说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序...
分类:
编程语言 时间:
2015-02-05 11:00:47
阅读次数:
232
今天在公司爆出一个 BUG,导致5000+crash. 大致是 UIKit 中的 delegate 访问了已经释放了的界面,也就是使用了野指针导致 crash. 回来演示了一下发现 @property?(nonatomic,?assign)?id<MyCellDelegate>?deleg...
分类:
移动开发 时间:
2015-01-29 12:55:10
阅读次数:
171
【转自】http://www.cnblogs.com/mjios/archive/2013/04/22/3034788.html本文目录一、什么是空指针和野指针二、野指针和空指针例子说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Ob...
分类:
其他好文 时间:
2015-01-22 21:43:06
阅读次数:
203