内存泄漏及浪费都是每个程序员非常忌讳的事情,但是稍有不慎就会造成不可弥补的损失,这里就这能指针sheard_ptr造成的循环引用及造成循环引用的原因我给大家给出了详细的图解及举例说明,同时也提供了避免这种循环引用的解决办法,就针对弱引用这一点做出了详细的解释,就针对shared_ptr和weak_ptr这两种智能指针的作用和用法也相加说明使得读者可以从代码及图例两方面对循环引用及解决办法有更深的认识。...
分类:
其他好文 时间:
2016-04-28 12:25:26
阅读次数:
260
C++:浅谈c++资源管理以及对[STL]智能指针auto_ptr源码分析标签:STL 智能指针 auto_ptr 源码分析by 小威威1. 知识引入在C++编程中,动态分配的内存在使用完毕之后一般都要delete(释放),否则就会造成内存泄漏,导致不必要的后果。虽然大多数初学者都会有这样的意识,但是有些却不以为意。我曾问我的同学关于动态内存的分配与释放,他的回答是:”只要保证new和delete...
分类:
编程语言 时间:
2016-04-28 01:55:46
阅读次数:
283
1.msgget (key_t ket,int flag) ; //创建一个新的消息队列或者访问一个已存在的消息队列 2.msgsnd(int msid, const void *ptr ,size_t length ,int flag ) // 发送 3.msgrcv() //读 4.msgctl ...
分类:
系统相关 时间:
2016-04-28 00:01:40
阅读次数:
296
一.内存操作函数:(1)头文件:#include<string.h>memset()函数用来将指定内存的前n个字节设置为特定的值,其原型为:void*memset(void*ptr,intvalue,size_tnum);参数说明:ptr为要操作的内存的指针。value为要设置的值。你既可以向value传递int类型的值,也可以传递cha..
分类:
编程语言 时间:
2016-04-25 01:02:37
阅读次数:
345
C++ 智能指针详解
一、简介
由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr...
分类:
其他好文 时间:
2016-04-22 19:53:53
阅读次数:
158
TcpConnection是使用shared_ptr来管理的类,因为它的生命周期模糊。TcpConnection表示已经建立或正在建立的连接,建立连接后,用户只需要在上层类如TcpServer中设置连接到来和消息到来的处理函数,继而回调TcpConnection中的 setConnectionCallback和setMessageCallback函数,实现对事件的处理。用户需要关心的事件是有限的,...
分类:
其他好文 时间:
2016-04-22 18:47:44
阅读次数:
189
从gdb信息中可以发现,内存中的一行记录有三个隐藏列分别为:DB_ROW_ID、DB_TRX_ID、DB_ROLL_PTR。除过DB_ROW_ID以外,DB_TRX_ID和DB_ROLL_PTR分别代表了每行记录的事务ID和每行记录的回滚指针。InnoDB中有运行期间有一个全局的事务链表,每个事务的 ...
分类:
数据库 时间:
2016-04-21 23:23:02
阅读次数:
285
智能指针的三种常见写法:一、最开始的原始写法,原始写法可以理解为指针转移的方法。template<typenameT>
classAutoPtr
{
public:
AutoPtr()
:_ptr(NULL)
{}
AutoPtr(T*ptr)
:_ptr(ptr)
{}
~AutoPtr()
{
if(_ptr)
{
delete_ptr;
_ptr=NULL;
}
}
AutoPtr<T>(Aut..
分类:
编程语言 时间:
2016-04-21 07:36:46
阅读次数:
211
1.XCFileStream的ReadData基本能用,需要加个 if(__ptr == '\0') break 的判断。(此时字符集为 未设置,假如是unicode编译不过) WriteData未做测试. 优化:可以只读某几行的内容。 2.读取配置文件内容 配置文件内容如下: [COLOR] TO ...
分类:
编程语言 时间:
2016-04-20 13:34:55
阅读次数:
252
智能指针:是存储指向动态分配对象指针的类。能够在适当的时间自动删除指向的对象。下面是它的三种实现://autoptr
template<classT>
classAutoptr
{
public:
Autoptr(T*ptr)
:_ptr(ptr)
{}
~Autoptr()
{
if(_ptr)
{
delete_ptr;
_ptr=NULL;
}
}
Aut..
分类:
其他好文 时间:
2016-04-20 02:14:48
阅读次数:
138