本系列文章,主要是学习c++内存管理这一块的学习笔记。

时间:6.7-21

之下以技术内幕的开头语,带入到学习C++内存管理的技术中吧:

内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,因此要想成为C++高手,内存管理一关是必须要过的!

笔记汇总:

1.C++内存管理学习笔记(1)

2.C++内存管理学习笔记(2)

3.C++内存管理学习笔记(3)

4.C++内存管理学习笔记(4)

5.C++内存管理学习笔记(5)

6.C++内存管理学习笔记(6)

7.C++内存管理学习笔记(7)(完)

8.c++内存管理学习笔记结束语

番外篇:

1.C/C++数组和指针详解

2.c++中复制控制详解(copy control);

个人认为,学习的态度是:不管是看书籍,看blog,看资料都要有怀疑和深究的态度!

以下部分是学习内存管理的资料,随着学习的不断深入,我相信资料也会越来越多!

相关书籍:

1.《C++内存管理技术内幕》(Download

2.《深入理解 Linux 虚拟内存管理》翻译版,Mel Gorman  著 译者:白洛 李俊奎 刘森林(Download)

3.《池内春秋》作者:侯捷(Download

4.《UNIX高级环境编程》(Download)

5.《c专家编程 expert c programing》(Download

6.《C++ primer》(Download)

7.《STL源码分析》(Download)

相关博客:

1.内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结(author:小虾米的窝):http://space.itpub.net/16856446/viewspace-612834

2.C和C++中内存分配的细节:http://www.cnblogs.com/sj20082663/archive/2013/04/23/3037181.html;

3.C++ 工程实践(2):不要重载全局 ::operator new():http://blog.csdn.net/solstice/article/details/6198937;

4.new、delete(new[]、delete[])操作符的重载:http://name5566.com/2339.html;

5.语义"陷阱"---数组和指针:http://www.cnblogs.com/yanlingyin/archive/2011/11/29/2268391.html#commentform;

6.数组和指针背后——内存角度:http://www.cnblogs.com/yanlingyin/archive/2011/12/06/2277821.html;

7.C++ 值传递、指针传递、引用传递详解:http://www.cnblogs.com/yanlingyin/archive/2011/12/07/2278961.html;

8.C++中的类模板详细讲述:http://www.cnblogs.com/assemble8086/archive/2011/10/02/2198308.html;

9.C++类模板:http://blog.sina.com.cn/s/blog_5ea0192f0100cstj.html;

10.C++ Primer 4th 笔记,异常处理,auto_ptr类:http://www.cnblogs.com/mydomain/archive/2011/04/15/2017424.html;

11.泛型编程:源起、实现与意义:http://blog.csdn.net/pongba/article/details/2544894;;

12.C++深度探索系列:智能指针(Smart Pointer) [一]http://www.cppblog.com/bossbird/archive/2008/09/22/62434.html;

13.C++深度探索系列:智能指针(Smart Pointer) [二]:http://blog.csdn.net/redstar81/article/details/19755;

14.auto_ptr 代码及缺陷:http://blog.csdn.net/wuzhekai1985/article/details/6603494;

15.高效使用auto_ptr:http://www.cppblog.com/mymsdn/archive/2010/04/07/Using-auto_ptr-Effectively.html;

16.effective c++ -- 资源管理:http://philoscience.iteye.com/blog/1402928;

17.C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等) -- ZZ from CU:http://hi.baidu.com/gikidy/item/96082ed10c9d2b14d90e449b;

18.Boost智能指针——shared_ptr:http://www.cnblogs.com/TianFang/archive/2008/09/19/1294521.html;

19.Boost 中的智能指针:http://www.cnblogs.com/sld666666/archive/2010/12/16/1908265.html;

20.C++拷贝构造函数详解:http://blog.csdn.net/lwbeyond/article/details/6202256;

21.C++:复制构造函数在什么时候被调用?:http://www.slyar.com/blog/cpp-copy-constructor.html;

22.C++内存管理变革http://blog.csdn.net/xushiweizh/article/details/1388982

相关资料:

1.内存管理内幕(IBM):http://www.ibm.com/developerworks/cn/linux/l-memory/

介绍:本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存, 以及如何使用垃圾收集自动管理内存。

2.C++内存管理的探讨(1)(2)-(51cto):http://developer.51cto.com/art/201104/254712.htm

介绍:大家都知道变量的生存周期这个概念,可是有的时候变量生存周期已经结束,但是所分配的那块内存空间还是存在的。文章举了四个不同的例子,来对C++内存管理进入深度探讨,以说明这其中的原因。

3.C++内存管理不同方式分析(51cto):http://developer.51cto.com/art/201002/183110.htm

介绍:C++内存管理的方式总共有三种,分别为自动存储、静态存储、动态存储。那么如何正确的理解这三种方式呢?在这里我们将会一一做一个介绍。

4.内存管理内幕(1)(2)(3)-(51cto):http://developer.51cto.com/art/200509/3600.htm

介绍:本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。

5.C++中内存分配详解:http://developer.51cto.com/art/201107/276154.htm;

介绍:我们都知道,内存基本上分为静态存储区、堆区和栈区三大部分。本文介绍的是C++中的内存分配的问题,希望对你有帮助,一起来看。

6.建议33:小心翼翼地重载operator new/ operator delete:http://book.51cto.com/art/201202/317799.htm;

介绍:《编写高质量代码:改善C++程序的150个建议》本书是C++程序员进阶修炼的必读之作,包含的全部都是C++编码的最佳实践,从语法、编码规范和编程习惯、程序架构和设计思想等三大方面对C++程序和设计中的疑难问题给出了经验性的解决方案,为C++程序员编写更高质量的C++代码提供了150条极为宝贵的建议。本节为大家介绍建议33:小心翼翼地重载operator new/ operator delete。

7.重载new和delete方法实现C++内存安全:http://www.2cto.com/kf/201210/162563.html

介绍:C++使用new关键字创建的对象,被分配到堆内存空间,然后得到对象地址,当程序复杂庞大时容易发生访问地址bug或内存泄露bug。为了避免内存泄露并在调试程序时找到内存泄露的bug,可以重载new和delete函数,确保程序的内存安全

8.Arrays and Pointers:http://www.functionx.com/cpp/Lesson14.htm

9.C++ Pointer to an Array:http://www.tutorialspoint.com/cplusplus/cpp_pointer_to_an_array.htm;

10.Pointer types and Arrays:http://pw1.netcom.com/~tjensen/ptr/ch2x.htm;

11.C++ pointers vs arrays:http://www.tutorialspoint.com/cplusplus/cpp_pointers_vs_arrays.htm;

12. Array is not pointer:http://www.cplusplus.com/forum/articles/10/;

13.Pointers,Pointers and arrays:http://www.cplusplus.com/doc/tutorial/pointers/ ;

14.数组和指针背后——内存角度:http://www.cnblogs.com/yanlingyin/archive/2011/12/06/2277821.html;

15. 指针、数组和地址间的关系:http://book.51cto.com/art/201103/248065.htm;
介绍:《C语言开发手册(典藏版)》第9章指针,本章首先介绍了C语言中指针的使用,主要包括指针的概念、指针变量的声明和赋值,接着详细讲解了指针和数组的关系及指针的运算规则,然后介绍了指向多维数组的指针。同时,本章还对几种特殊的指针进行了详细的介绍,主要包括字符串指针、指针数组、指向指针的指针、指针和函数等。最后,本章还总结了指针的学习要点。本节为大家介绍指针、数组和地址间的关系。

16.C++类模板应用代码深入剖析:http://developer.51cto.com/art/201002/183044.htm

17.C++中模板使用详解(转):http://www.360doc.com/content/09/0403/17/799_3011262.shtml;

18.More Effective C++之智能指针:http://dev.yesky.com/426/2496426.shtml;

19.详解C++中的Boost智能指针:http://developer.51cto.com/art/201012/239004.htm;
介绍:今天我们要介绍boost中的智能指针的使用。对于内存管理,C++中有两个实现方案: 垃圾回收机制和智能指针。而智能指针被认为是解决C++内存问题的最优方案。

20.What is a smart pointer and when should I use one?:http://stackoverflow.com/questions/106508/what-is-a-smart-pointer-and-when-should-i-use-one

21.C++ 智能指针详解:http://blog.csdn.net/xt_xiaotian/article/details/5714477

22.对C++资源管理内容分析研究:http://developer.51cto.com/art/201001/181314.htm
介绍:在C++资源管理中有这样两个概念,向上类型转换,向下类型转换,分别描述的是子类向基类和基类向子类的强制类型转换。

23.Smart Pointers Overview:http://dlugosz.com/Repertoire/refman/Classics/Smart%20Pointers%20Overview.html;

24.Smart Pointers - What, Why, Which?:http://ootips.org/yonat/4dev/smart-pointers.html;

25.一步一步写STL:定制智能指针(上):http://www.csdn 123.com/html/blogs/20130601/18308.htm;

26.三十分钟掌握STL:http://net.pku.edu.cn/~yhf/UsingSTL.htm;

27.boost库之smart pointer:http://hi.baidu.com/drsuyxtmtlbiltd/item/5aed68f81b79ae13ce9f32bc;

28.Smart Pointers in Boost:http://www.drdobbs.com/cpp/smart-pointers-in-boost/184401507;

29.如何:创建和使用shared_ptr实例:http://msdn.microsoft.com/zh-cn/library/vstudio/hh279669.aspx;

30.class template std::shared_ptr:http://www.cplusplus.com/reference/memory/shared_ptr/;

31.boost::shared_ptr class template:http://www.boost.org/doc/libs/1_53_0/libs/smart_ptr/shared_ptr.htm;

32.Boost.shared_ptr必须注意的一些地方:http://www.360doc.com/content/10/1221/15/1801810_80092270.shtml;

33.Smart Pointers to boost your code:http://www.codeproject.com/Articles/8394/Smart-Pointers-to-boost-your-code;

34.Pimpl Idiom:http://c2.com/cgi/wiki?PimplIdiom;

35.C++ Copy Constructor:http://www.tutorialspoint.com/cplusplus/cpp_copy_constructor.htm;

36.C++ Notes: OOP: Copy Constructors:http://www.fredosaurus.com/notes-cpp/oop-condestructors/copyconstructors.html;

37.Assignment operators overloading in C++:http://www.tutorialspoint.com/cplusplus/assignment_operators_overloading.htm;

c++内存管理学习纲要的更多相关文章

  1. 【转】c++内存管理学习纲要

    http://blog.csdn.net/zhanghefu/article/details/5003407 转自:http://blog.csdn.net/wdzxl198/article/deta ...

  2. C++内存管理学习笔记(5)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  3. C++内存管理学习笔记(6)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  4. C++内存管理学习笔记(7)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  5. C++内存管理学习笔记(4)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  6. C++内存管理学习笔记(3)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  7. C++内存管理学习笔记(2)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  8. C++内存管理学习笔记(1)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  9. Linux内存管理学习资料

    下面是Linux内存管理学习的一些资料. 博客 mlock() and mlockall() system calls. All about Linux swap space 逆向映射的演进 Linu ...

随机推荐

  1. windows下常用快捷指令记忆

    快速打开环境变量窗口 sysdm.cpl --系统设置 快速打开远程桌面程序 mstsc ---Microsoft terminal services client 快速打开事件查看器 eventvw ...

  2. [Laravel框架学习二]:Laravel的CURD和查询构造器的CURD,以及聚合函数

    public function index() { //return Member::getMember();//这是调用模型的方法 return view('lpc',[ 'age'=>18, ...

  3. python 携程asyncio 实现高并发示例2

    https://www.bilibili.com/video/BV1g7411k7MD?from=search&seid=13649975876676293013 import asyncio ...

  4. Python之小型信息管理系统

    #Author:msq #Time:2019/11/16 import re import os filename = "person.txt" def menu(): #输出菜单 ...

  5. python爬虫(1)requests库

    在pycharm中安装requests库的一种方法 首先找到设置 搜索然后安装,蓝色代表已经安装 requests库中的get请求 与HTTP协议相对应,requests库也有七种请求方式. 获取ur ...

  6. [SketchUp]-绘制自己的家

    [SketchUp]-绘制自己的家 softsketchuphome 简介 最近已经完成了 毕业论文, 等待盲审的过程中, 将过去几年做的东西也都一一整理了, 硬盘中好几个不敢动的文件夹 也都可以删除 ...

  7. Scala教程之:深入理解协变和逆变

    文章目录 函数的参数和返回值 可变类型的变异 在之前的文章中我们简单的介绍过scala中的协变和逆变,我们使用+ 来表示协变类型:使用-表示逆变类型:非转化类型不需要添加标记. 假如我们定义一个cla ...

  8. String、String[]、ArrayList<String>之间的转换

    1. ArrayList<String> 转换为 String[]: ArrayList<String>  list = new ArrayList<>(); li ...

  9. Zookeeper之Error contacting service. It is probably not running.

    安装ZooKeeper时,无论是修改zoo.cfg:还是myid,都检查了几遍都没有错误.但是开启Zookeeper服务时出现: Error contacting service. It is pro ...

  10. Aurora: 来自 Amazon 的高性能的企业级关系数据库,兼容 MySQL

    近日,在美国召开的AWS re:Invent云计算大会上,Amazon高级副总裁安迪·杰西发布了企业级关系数据库Aurora.Aurora是一个面向Amazon RDS(关系数据库服务).兼容MySQ ...