请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,第12行,有的书上会用malloc或者new申请空间,但是老师您的代码,直接声明了一个T类型的数组,请问,开辟数组和申请栈空间的区别是什么,为什么都可以

正在回答

2回答

liuyubobobo 2017-06-23 10:28:33

和类型无关。使用new或者malloc申请的内存是在系统的堆空间上。使用[](方括号)声明的数组是在系统的栈空间上。从功能上他们是没有区别的。但是在C++的具体使用上,要注意,使用new申请的空间需要delete(相应的malloc申请的空间需要free);而栈空间的内存在block执行完后会被自动释放。


这就好比如下两个数组的声明方式,都是数组:)

int a[10];
int* a = new int[10];


1 回复 有任何疑惑可以回复我~
提问者 慕粉1517159895 2017-06-22 22:07:00

https://img1.sycdn.imooc.com/szimg//594bceda0001b5c009130521.jpg我刚才忘记截图了,这张图片里的12行

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信