请问栈和堆究竟有何区别?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 22:19:03

请问栈和堆究竟有何区别?

栈和堆的地址是从两端相向增长的
栈很小,一般只有几十k,vc6好像是64k
堆很大,在win32的虚拟地址空间可以分配到2g的内存
栈由程序自动操作,包括局部变量,参数传递,函数跳转时的返回地址等信息
堆由程序员自行管理内存,优势,节省空间,不用时即释放,缺点,可能因使用不但造成内存泄露,野指针,造成程序错误