C ++中的静态数组和动态数组有什么区别?
我必须为我的课程做一个分配,它说不要使用静态数组,而只能使用动态数组。我在书中和网上都看过,但我似乎不太明白。
我以为静态是在编译时创建的,而动态是在运行时创建的,但是我可能会误以为是内存分配。
您能解释一下C ++中静态数组和动态数组之间的区别吗? 问题来源于stack overflow
本地数组是在堆栈上创建的,并且具有自动存储期限-您不需要手动管理内存,但是当它们结束使用时,它们会被销毁。它们必须具有固定的大小:
int foo[10]; 使用创建的数组operator new[]具有动态存储持续时间,并存储在堆中(从技术上讲是“免费存储”)。它们可以有任意大小,但是由于它们不属于堆栈框架,因此您需要自己分配和释放它们:
int* foo = new int[10]; delete[] foo;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。