zoukankan      html  css  js  c++  java
  • c++内存管理学习纲要

    本系列文章,主要是学习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;

  • 相关阅读:
    could not load file or assembly "System.Web.Mvc...
    .Net利用cwbx.dll call AS400 program得到数据
    fastadmin 如何构建组合题--Cannot read property '0' of undefined
    fastadmin的前端js文件中api和event的区别,formatter的意思
    fastadmin是如何使用art-template的,以及如何在js模板中,嵌套JS模板
    学习fastadmin的新技巧:去git里面看文件的修改
    thinphp5,模型调用模型,和控制器调用模型的区别
    fa使用技巧+tp5技巧总结
    input autocomplete的作用是什么?
    fastadmin 实现标签的多选研究---基于fa的test案例,已经CMS中的标签写法
  • 原文地址:https://www.cnblogs.com/bleopard/p/4005098.html
Copyright © 2011-2022 走看看