摘要:
在C/C++中栈区由编译器自动分配和释放,存放函数的参数值,局部变量的值等,操作方式类似于数据结构中的栈;堆区一般由程序员自己分配和释放,若程序员不释放,程序结束后可能由操作系统回收。它与数据结构中的堆是两码事,分配方式倒是类似于链表区别:1.申请方式:栈:系统自动分配。堆:程序员自己申请,并指明大小,在C中用malloc函数,C++中用new操作符。p=(char *)malloc(10);//注意,p本身是在栈区2.申请后系统的响应:栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时 阅读全文