开发者社区> 问答> 正文

C ++中的静态数组与动态数组

C ++中的静态数组和动态数组有什么区别?

我必须为我的课程做一个分配,它说不要使用静态数组,而只能使用动态数组。我在书中和网上都看过,但我似乎不太明白。

我以为静态是在编译时创建的,而动态是在运行时创建的,但是我可能会误以为是内存分配。

您能解释一下C ++中静态数组和动态数组之间的区别吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 19:01:58 536 0
1 条回答
写回答
取消 提交回答
  • 本地数组是在堆栈上创建的,并且具有自动存储期限-您不需要手动管理内存,但是当它们结束使用时,它们会被销毁。它们必须具有固定的大小:

    int foo[10]; 使用创建的数组operator new[]具有动态存储持续时间,并存储在堆中(从技术上讲是“免费存储”)。它们可以有任意大小,但是由于它们不属于堆栈框架,因此您需要自己分配和释放它们:

    int* foo = new int[10]; delete[] foo;

    2020-02-08 19:02:09
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载