堆中的内存和栈中的内存在VC++中有什么区别

来源:百度知道 编辑:UC知道 时间:2024/06/25 11:24:24
是否栈中的内存会自动回收,而堆中的需要调用Delete回收?

简单说下吧,像你在函数内定义的变量类似int a = 1;这种,他是在函数的栈空间内分配空间的,在退出函数的时候,栈空间会自动回收,像new的变量,是在堆空间中申请的,需要你手工回收。当然也有类似智能指针或gc这类的东西来帮你做回收的,不过干的事都是一样,只是区别在于你干还是编译器帮你干。

另外在栈中不能申请很大的变量,否则会栈溢出,申请不成功,对于大的变量建议你new

没明白问题的意思,C/C++/VC++内存都需要手动的回收。。。除非用smartpointer或者其他的自动指针。。。

是的