触犯单步异常 改变的是当前Eflags 而不是触发异常的Eflags 也就是 PUSHF MOV EAX, DWORD PTR[ESP] OR EAX, 0x100 MOV DWORD PTR [ESP], EAX POPF 来实现单步异常(特别需要注意单步异常设置后下一条语句也会触发单步异常。如果 ...
1. 智能指针的意义 (1)现代C++开发库中最重要的类模板之一 (2)C++中自动内存管理的主要手段 (3)能够在很大程度上避开内存相关的问题(如内存泄漏、内存的多次释放等) 2. STL中的智能指针 (1)auto_ptr智能指针 ①生命周期结束时,销毁指向的内存空间 ②只能用来管理单个动态创建 ...
分类:
其他好文 时间:
2016-07-02 13:05:55
阅读次数:
157
1. ptr->name,等同于打印(*p).name。 2. *ptr->name,因为->的优先级高于*,所以相当于: *(ptr->name)。即指针首地址的那个字符。 3. *ptr->name++,由于*和++的优先级相同,而且结合性是由右至左,所以相当于: *((ptr->name)++ ...
分类:
其他好文 时间:
2016-07-01 14:47:16
阅读次数:
140
有时对象必须存储一种方法,用来在不引起引用计数增加的情况下访问 shared_ptr 的基础对象。通常,当您在 shared_ptr 实例之间循环引用时,就会出现此情况。 最佳的设计能够尽可能地避免指针具有共享所有权。但是,如果您必须具有共享的 shared_ptr 实例所有权,请避免在实例之间进行 ...
分类:
编程语言 时间:
2016-06-29 22:07:03
阅读次数:
237
unique_ptr 不共享它的指针。它无法复制到其他 unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法。只能移动unique_ptr。这意味着,内存资源所有权将转移到另一 unique_ptr,并且原始 unique_ptr 不再拥有此资源。我们建议 ...
分类:
编程语言 时间:
2016-06-29 21:59:23
阅读次数:
384
shared_ptr 的类型是C + +标准库中一个聪明的指针,是为多个拥有者管理内存中对象的生命周期而设计的。在你初始化一个 shared_ptr 后,你可以复制它,把函数参数的值递给它,并把它分配给其它 shared_ptr 实例。所有实例指向同一个对象,并共享访问一个“控制块”,即每当一个新的 ...
分类:
编程语言 时间:
2016-06-29 20:37:35
阅读次数:
440
osg::ref_ptr<osg::Material> material = new osg::Material(); //模型材质信息 material->setTransparency(osg::Material::FRONT_AND_BACK, 1.0); material->setEmiss ...
分类:
其他好文 时间:
2016-06-27 15:10:50
阅读次数:
132
1 auto_ptr 1 auto_ptr C++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理。 使用std::auto_ptr,要#include <memory>。 ...
分类:
其他好文 时间:
2016-06-25 12:22:45
阅读次数:
554
C++没有像Java和C#那样存在自动内存回收机制,因此C++的内存管理是每一个C++程序员都要面对的问题。所幸的是,C++提供了智能指针这一机制来帮助我们自动地管理内存分配,大大方便了内存管理。 C++提供了两种智能指针:auto_ptr和shared_ptr,这两种类型都具备自动管理内存资源的功 ...
分类:
其他好文 时间:
2016-06-23 14:23:37
阅读次数:
175
FILE结构体VC6.0中:#ifndef_FILE_DEFINEDstruct_iobuf{char*_ptr;//文件输入的下一个位置int_cnt;//当前缓冲区的相对位置char*_base;//指基础位置(即是文件的其始位置)int_flag;//文件标志int_file;//文件的有效性验证这个文件记录可以在FCB表中找到int_charbuf;//检查缓冲区..
分类:
其他好文 时间:
2016-06-19 18:33:52
阅读次数:
163