开发者社区 问答 正文

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

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

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

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

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

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

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

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

    2020-02-08 19:02:09 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答标签:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等