豆泥丸
发表于 2016-3-21 10:11:51
:):):):):):):)
荣丰宇
发表于 2016-3-21 10:19:32
heap是堆,stack是栈;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
荣丰宇
发表于 2016-3-21 10:20:27
heap是堆,stack是栈;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
zdw28578294-599
发表于 2016-3-21 10:25:24
签到签到
逍遥李
发表于 2016-3-21 10:26:46
1、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收,分配方式倒是类似于链表。
2、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
荣丰宇
发表于 2016-3-21 10:26:49
heap是堆,stack是栈;
stack的空间由系统自动分配和释放,heap的空间手动分配和释放;
stack空间有限,heap有很大的自由存储区;
C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符;
程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。
huaiqiao
发表于 2016-3-21 10:35:22
1、堆: 一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收
2、栈:由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。
yuazhang
发表于 2016-3-21 10:37:30
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
堆和栈的区别:
1、管理方式不同;
2、空间大小不同;
3、能否产生碎片不同;
4、生长方向不同;
5、分配方式不同;
6、分配效率不同;
zjg_lizhen
发表于 2016-3-21 10:37:50
.heap是堆,stack是栈。2.stack的空间由操作系统自动分配和释放,heap的空间是程序员申请和释放的
wtliu
发表于 2016-3-21 10:37:50
签到:lol:lol
页:
1
2
3
4
[5]
6
7
8
9
10
11