内存管理
文章平均质量分 78
Joshua__Peng
运筹帷幄世界在我手中
展开
-
C/C++内存分配
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(s转载 2013-09-06 16:42:26 · 649 阅读 · 0 评论 -
C++指针漂移问题解决方案
C++编程语言虽然功能强大,应用方式灵活,但是在实际编程中同样会出现各种各样的错误。在这里我们将会为大家详细介绍一下有关C++指针漂移的解决方法,希望本文介绍的内容可以帮助大家解决问题。最近我们在工作中碰到一个奇怪的问题,最后确定是多继承引起的C++指针漂移,跟C++对象模型有关。示意如下class A {...}; class B{...}; class AB : public转载 2013-09-06 16:43:49 · 1317 阅读 · 0 评论 -
内存泄露检查
介绍: 动态分配、回收内存是c/c++编程语言一个最强的特点,但是中国哲学家孙(sun tzu,我不知道是谁?那位知道?) 指出,最强的同时也是最弱的。这句话对c/c++应用来说非常正确,在内存处理出错的地方通常就是bugs产生的地方。一个最敏感和难检测的bug就是内存泄漏-没有把前边分配的内存成功释放,一个小的内存泄漏可能不需要太注意,但是程序泄漏大块内存,或者渐增式的泄漏内存可能引起的现象转载 2013-09-06 16:13:33 · 697 阅读 · 0 评论 -
C++内存分配的五种方法的区别
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统原创 2013-09-06 16:39:38 · 681 阅读 · 0 评论 -
智能指针auto_ptr的使用
智能指针auto_ptr的使用 auto_ptr是C++标准库中()为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针)auto_ptr的实现原理其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针。std::auto_ptr pa(new ClassA);#include原创 2013-09-17 15:01:25 · 830 阅读 · 0 评论 -
C++ auto_ptr智能指针的详细用法和注意事项
C++ auto_ptr智能指针的详细用法和注意事项C++中指针申请和释放内存通常采用的方式是new和delete。然而标准C++中还有一个强大的模版类就是auto_ptr,它可以在你不用的时候自动帮你释放内存。下面简单说一下用法。用法一: std::auto_ptrm_example(new MyClass());用法二std::auto_pt转载 2013-09-17 15:52:42 · 1094 阅读 · 0 评论