前言

在做题时,有时候不知道数组能不能开那么大。那数组的大小如何计算呢?下面来给大家介绍一下c++数组能开多大。


讲解

一般情况下,char\text{char}char占1个字节,int\text{int}int占4个字节,long long\text{long long}long long占8个字节。

128MB128\text{MB}128MB来举例。

128MB=131072KB=134217728B128\text{MB}=131072\text{KB}=134217728\text{B}128MB=131072KB=134217728B

也就是说,128MB128\text{MB}128MB的内存理论上最多可以开134217728B134217728\text{B}134217728B的数组。

  • char\text{char}char的一维数组可以开134217728134217728134217728的长度
  • int\text{int}int的一维数组可以开335544323355443233554432的长度
  • long long\text{long long}long long的一维数组可以开167772161677721616777216的长度

当然,因为代码的其他地方也需要内存,所以不能开满,还要留一部分。如果RE\text{RE}RE,则是数组大小不够题目要求的数据量或者数组大小超过内存限制的问题。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐