C/C++
马小橙
漫漫钻研之路~
展开
-
堆和栈的区别比较
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。转载 2015-04-26 09:38:31 · 575 阅读 · 0 评论 -
C++内存管理学习
本系列文章,主要是学习c++内存管理这一块的学习笔记。时间:6.7-21之下以技术内幕的开头语,带入到学习C++内存管理的技术中吧:内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,因此要想成为C++高手,内存管理一关是必须要过的!笔记汇总:1.C++内存管理学习笔记(1)2.C++内存管理学习笔记(2)3.C++内存管理学习笔转载 2015-04-26 09:39:52 · 673 阅读 · 0 评论 -
最优装载问题或者01背包问题的分支限界法求解
问题的提出:背包的容量为 c,物品的个数为n,物品的重量依次为w1,w2,......,wn,求背包中的最大容量。01背包问题和下面所描述的装载问题解法一致,大家可以认为是同一类问题。有一批公n个集装箱的两艘载重重量为C1,C2的轮船,集装箱的重量分别为w1,w2,......,wn,我们知道集装箱是不能拆开分别装入两艘船上的,所以该问题和01背包问题是一类问题,此时我们只需要考虑将第一艘船尽量装原创 2015-04-25 08:52:18 · 5609 阅读 · 0 评论 -
在严蔚敏《数据结构(C语言版)》中,不能用动态分配的一维数组来实现循环队列
近期查看严蔚敏的《数据结构(C语言版)》,里面有这样一句话:从上述分析可见,在C语言中不能用动态分配的一维数组来实现循环队列。网上也有不少网友询问这句话的意思及对错,先谈一下自己的认识。动态分配的存储空间是连续的存储空间,假如分配了n个存储空间(分别问0,1,...,n-1),第n-1个存储空间的地址肯定大于第0个存储空间的地址。当所有的空间都存储满时,继续存储元素就会发生数组越界,出现错误。原创 2015-08-21 09:02:31 · 2671 阅读 · 1 评论 -
内联函数与宏定义的区别举例
内联函数与宏定义的区别在网上的讲解有很多,在这里就不在介绍了,现在仅给出两个实例说明他们之间的区别原创 2015-11-16 15:36:04 · 686 阅读 · 0 评论