![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
紫霄
喜爱篮球、乒乓、垂钓。
展开
-
内存三种分配方式
1.从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 2.在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 3.从堆上分配,亦称动态内存分配。程序在运行的时原创 2013-01-28 13:52:32 · 541 阅读 · 0 评论 -
内存分配
编译器编译后成为obj,经过连接器连接后生成机器码。 静态的分配的内存,是在编译连接过程中分配的;动态内存,是在运行时分配的。 对于应用来讲,每个进程都拥有独立的4G内存空间,也就是说进程A中占用的内存是0x001,进程B中占用的内存0x001,指的都是虚拟内存,他们指向的不是同一个物理内存。 我们现在所有操作的内存,指的都是虚拟内存,内存条正在的实际地址0x001,我们是不能直接访问的。原创 2013-01-28 13:48:12 · 361 阅读 · 0 评论 -
C++编译程序占用的内存分配
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack),由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap),一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区(static),全局变量和静态变量的存原创 2013-01-28 13:50:12 · 368 阅读 · 0 评论