老师,第12行,有的书上会用malloc或者new申请空间,但是老师您的代码,直接声明了一个T类型的数组,请问,开辟数组和申请栈空间的区别是什么,为什么都可以
来源:3-2 归并排序法的实现
慕粉1517159895
2017-06-22
写回答
2回答
-
和类型无关。使用new或者malloc申请的内存是在系统的堆空间上。使用[](方括号)声明的数组是在系统的栈空间上。从功能上他们是没有区别的。但是在C++的具体使用上,要注意,使用new申请的空间需要delete(相应的malloc申请的空间需要free);而栈空间的内存在block执行完后会被自动释放。
这就好比如下两个数组的声明方式,都是数组:)
int a[10]; int* a = new int[10];
10 -
慕粉1517159895
提问者
2017-06-22
我刚才忘记截图了,这张图片里的12行
10
相似问题