摘要:
今天在读《STL源码剖析》空间配置器第二级时看到了这句,有点不解,于是查阅后知:obj后面是个指针 STL_VOLATILE也应该是个类型定义的吧,程序中应该有define来对它定义。所以就是指针的指针。。指针,也就是地址,所以是__my_free_list是一个地址,*__my_free_list... 阅读全文
posted @ 2014-09-02 23:25
RanShW
阅读(747)
评论(0)
推荐(0)
摘要:
题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一类是内存管理的实现,如linux内核的slab分配器,S... 阅读全文
posted @ 2014-09-02 22:43
RanShW
阅读(639)
评论(0)
推荐(0)
摘要:
在C和C++中,有三种使用存储区的基本方式:[静态存储区(Static Memory)]在静态存储区中,连接器(linker)根据程序的需求为对象分配空间。全局变量、静态类成员以及函数中的静态变量都被分配在该区域中。一个在该区域中分配的对象只被构造一次,其生存期一直维持到程序结束。在程序运行的时候... 阅读全文
posted @ 2014-09-02 20:37
RanShW
阅读(171)
评论(0)
推荐(0)
摘要:
在STL中为了提供通用的操作而又不损失效率,我们用到了一种特殊的技巧,叫traits编程技巧。具体的来说,traits就是 通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性,这些特性根据类型的不同而异。在程序设计中可以使用这些traits来判 断一个类型的一些特性,引发C+... 阅读全文
posted @ 2014-09-02 16:47
RanShW
阅读(230)
评论(0)
推荐(0)
摘要:
一个是用来传值的 一个是用来获取首地址的&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.例如: int &rf; // 声明一个int型的引用rf.&(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时 表示取对象的地址.在C++中,既有引用又... 阅读全文
posted @ 2014-09-02 15:37
RanShW
阅读(490)
评论(0)
推荐(1)
摘要:
首先,C++标准规定:delete空指针是合法的,没有副作用。但是,delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址。 问题来了,对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。如下代码int ... 阅读全文
posted @ 2014-09-02 10:28
RanShW
阅读(407)
评论(0)
推荐(0)