- 博客(3)
- 收藏
- 关注
转载 栈内存与堆内存
<br />一个由C/C++编译的程序占用的内存分为以下几个部分:<br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br /><br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事。<br /><br />3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化
2011-04-13 17:53:00
371
转载 栈内存与堆内存
<br /> 可能许多人对内存分配上的“栈 stack”和“堆 heap”不是很明白。简单的来讲,stack上分配的内存系统自动释放,heap上分配的内存,系统不自动释放。stack一般是静态分配内存,heap上一般是动态分配内存。 <br /><br /> 由malloc系统函数分配的内存就是从堆上分配内存。从堆上分配的内存一定要自己释放。用free释放,不然就是术语——“内存泄露”(或是“内存漏洞”)—— Memory Leak。于是,系统的可分配内存会随malloc越来越少,直到
2011-04-13 13:04:00
290
转载 有符号数和无符号数
有符号数和无符号数负数在计算机中如何表示呢?你可能听过两种不同的回答。一种是教科书,它会告诉你:计算机用“补码”表示负数。,用“补码”表示负数,其实是一种公式,公式的作用在于告诉你,想得到问题的答案,应该如何计算。却并没有告诉你为什么用这个公式就可以得到答案? 另一种是一些程序员告诉你的:用二进制数的最高位表示符号,最高位是0,表示正数,最高位是1,表示负数。这种说法本身没错,可是如果没有下文,那么它就是错的。至少它不能解释,为什么字符类型的-1用二进制表示是“1111 1111”(16进制为FF);而不是
2011-04-13 12:55:00
1133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人