内存的使用感觉好乱啊,需要整理一下!于是参考C++ primer与网上资源,整理如下: 一、综述:内存中的栈区分配的是局部变量空间;堆区是向上增长的用于分配程序员申请的内存空间(比如new 申请的动态内存),注意它与数据结构中的堆是两回事,分配方式倒是类似于链表;静态区(全局区)是分配静态变量,全局 ...
分类:
其他好文 时间:
2017-12-24 21:23:34
阅读次数:
155
Why? 可以保证程序在运行过程中按照实际需要申请适量的内存,使用结束后还可以释放,这种在程序运行过程中申请和释放的存储单元也称为堆对象,申请和释放的过程一般称为建立和删除。 new的功能:动态分配内存,或称为动态创建堆对象 new 数据类型(初始化参数列表) 如果内存申请成功,new运算返回一个指 ...
分类:
其他好文 时间:
2017-12-10 13:05:03
阅读次数:
115
https://www.cnblogs.com/clover-toeic/p/3737011.html 1 缓冲区溢出原理 缓冲区是一块连续的计算机内存区域,可保存相同数据类型的多个实例。缓冲区可以是堆栈(自动变量)、堆(动态内存)和静态数据区(全局或静态)。在C/C++语言中,通常使用字符数组和m ...
分类:
其他好文 时间:
2017-12-05 17:45:32
阅读次数:
213
1.shared_ptr:允许多个指针指向同一个对象 初始化方式: shared_ptr p1 = make_shared(10);//最好使用这种方式 shared_ptr p2(new int(20)); //只能用直接初始化方式 和普通指针有一样的操作,*,->,swap等 支持拷贝与赋值与自... ...
分类:
其他好文 时间:
2017-12-02 23:26:30
阅读次数:
201
前言 在C++中,动态内存的管理是通过运算符new和delete来完成的。但使用动态内存很容易出现问题,因为确保在正确的时间释放内存是及其困难的。有时候我们会忘记内存的的释放,这种情况下就会产生内存泄露;有时候又会在尚有指针引用的情况下就用delete释放了内存,这样又会产生引用非法内存的指针(野指 ...
分类:
编程语言 时间:
2017-11-27 18:50:35
阅读次数:
241
/*************************************************************** Author :h-j-w Created Time :2017-11-26 File Name :顺序栈 *******************************... ...
分类:
其他好文 时间:
2017-11-26 14:03:55
阅读次数:
107
1.内存按区域分类存放数据 栈区(stack):存放函数的参数值、返回值、局部变量等。 堆区(heap):用于动态内存分配。 未初始化静态全局区(bss):全局未初始化、静态未初始化数据。 初始化静态全局区(data):全局初始化、静态初始化数据。 文字常量区(rodata):字符串常量。 代码区( ...
分类:
其他好文 时间:
2017-11-24 23:59:49
阅读次数:
349
new的问题究竟在哪里呢?实际上问题出在new和delete的结合使用上。考察下面程序中内存分配和释放过程: 在每个循环步中,我们创建了两个Small,在此期间,我们还分配了一个Big,然后又释放了它。考察这段代码,每执行一个循环步,我们可能期望“消耗” 2*sizeof(Small)个字节的内存( ...
分类:
编程语言 时间:
2017-11-18 13:39:57
阅读次数:
202
Linux应用 编程深入 语言编程标准C程序设计七 经典C11程序设计 以下内容为阅读: 《标准C程序设计》(第7版) 作者:E. Balagurusamy(印), 李周芳译 清华大学出版社 2017.7 《21天学通C语言》(第7版) 作者:Bradley Jones Peter Aitken D ...
分类:
其他好文 时间:
2017-11-14 22:19:50
阅读次数:
170
Linux应用 编程深入 语言编程标准C程序设计七 经典C11程序设计 以下内容为阅读: 《标准C程序设计》(第7版) 作者:E. Balagurusamy(印), 李周芳译 清华大学出版社 2017.7 《21天学通C语言》(第7版) 作者:Bradley Jones Peter Aitken D ...
分类:
其他好文 时间:
2017-11-14 19:34:06
阅读次数:
158