c++数组最大长度(干货)

发布时间 2023-11-09 12:51:03作者: UncleSam_Died

        在编译器里,每种类型的变量定义数组的时候都有一个数组大小,而这个大小对于不同的变量而言有不同的上限,这里的最大长度更准确的来说应该是系统堆的最大值。

字符类型数组

一个字符占1byte大小,八位,所以,理论上,在一个64位的编译器中,一个字符数组的最大长度是2147483648,但之际上,经过我的手敲,能开的最大长度是2146793727

char s[2146793727];

字符串类型数组

字符串类型数组就像是二维的字符类型数组,本人亲测,一个字符串能存储4049个字符(多了会卡死),但字符串类型的数组最大长度为268349215有点离谱

string b[268349215];

int 类型数组

一个int类型的变量占4个字节,是字符的四倍,所以int类型数组的最大长度大概是字符类型的四分之一,为536698431

int a[536698431];

long long类型数组

一个long long类型的变量占8个字节,所以longlong类型数组的最大长度大概是268349215

long long c[268349215];

浮点数

float和double类型的变量就像是int和longlong,而数组最大长度也分别和int和longlong相同

为536698431和268349215

float e[536698431];
double f[268349215];

布尔类型

布尔类型的变量也只占一个字节,所以数组最大长度和char一样为2146793727

bool d[2146793727];

总结

以上总结的各类型数组最大长度仅为最大能编译的长度,可能会因编译器的不同而不同,同时,一个程序里只能开一个这么大的数组,虽然能成功编译,

编辑

 但不能运行??

编辑

 

 手敲数据不易,给个免费的赞吧