堆和栈的区别一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两...
分类:
其他好文 时间:
2014-10-03 20:25:55
阅读次数:
240
函数指针指向代码区,普通指针指向数据区。函数指针定义如下:
返回类型 (*函数指针变量)(参数表)
例如,void (*pf)()指向形如void f()这样的函数。
使用函数指针的例子:
void open();//对几个函数声明
void print();
void exit();
void (*pfs[])()={open,print,exit};//函数指针数组
int main(...
分类:
编程语言 时间:
2014-10-03 17:53:44
阅读次数:
174
类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象,同一时刻仅仅同意一个线程存取资源或代码区。临界区在控制一次仅仅有一个线程改动数据或其他的控制资源时很实用。比如,在链表中添加?一个结点就仅仅同意一次一个线程进行。通过使用CCriticalSection对象来控制链表...
分类:
其他好文 时间:
2014-10-02 23:08:43
阅读次数:
259
c语言内存四区模型:
代码区,全局区(常量区),栈区,堆区
分类:
编程语言 时间:
2014-09-30 01:05:21
阅读次数:
256
以往开发ASP.NET Web Form时,在ASPX页面上都会出现许多夹杂C#/VB.NET与HTML的情况,而先前使用这种传统圆角括号的表示法会让HTML标签与ASP.NET代码区块混杂一起,当页面变得复杂后,这类混合的代码也开始变得难以阅读,相信大家都有相同的感受。 从ASP.NET MVC....
分类:
其他好文 时间:
2014-09-25 16:38:29
阅读次数:
250
常量字符串为什么位于静态存储区?char *c="zhaobei";书上说: "zhaobei"这个字符串被当作常量而且被放置在此程序的内存静态区。那一般的int i=1;1也是常量,为什么1就不被放置在此程序的内存静态区了呢?请高手指点!所有的字符窜常量都被放在静态内存区因为字符串常量很少需要修改...
分类:
其他好文 时间:
2014-09-25 03:39:48
阅读次数:
256
方法区和运行时常量池溢出由于运行时常量池是方法区的一部分,因此这两个区域的溢出测试就放在一起进行。前面提到JDK 1.7开始逐步“去永久代”的事情,在此就以测试代码观察一下这件事对程序的实际影响。String.intern()是一个Native方法,它的作用是:如果字符串常量池中已经包含一个等于此S...
分类:
其他好文 时间:
2014-09-24 11:49:36
阅读次数:
272
尽量使用区间成员函数代替它们的单元素兄弟的理由
一般来说使用区间成员函数可以输入更少的代码。区间成员函数会导致代码更清晰更直接了当。当处理标准序列容器时,应用单元素成员函数比完成同样目的的区间成员函数需要更多地内存分配,更频繁地拷贝对象,而且/或者造成多余操作。
// 把一个int数组拷贝到vector前端
int data[numValues]; // 假设numValues在其他地方...
分类:
其他好文 时间:
2014-09-20 19:18:39
阅读次数:
198
栈区可以修改默认大小配置:栈区默认的大小是1M,在vs2013中可以修改。堆区和栈区的地址区别:栈是连续的,向上增长,地址越来越小。类似数组。堆是链接的,向下增长,地址越来越大。类似链表。栈区 高地址到低地址堆区 低地址到高地址#include #include int main(){ int a ...
分类:
编程语言 时间:
2014-09-19 21:08:26
阅读次数:
344
一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束...
分类:
其他好文 时间:
2014-09-19 16:53:55
阅读次数:
221