2017-08-15 709 views
-4

我们可以只在一个整数数组中存储一个[10000000](10^7)的元素。是否有一种方法可以存储更多的数据量。还有什么是字符数组的最大尺寸。请原谅这个问题重复,我会删除它。在C++中可以存储在数组中的元素的最大数量是多少?

+3

你从哪里得到10000000的数字?我认为唯一的限制是可用内存。 – Carcigenicate

+0

“_我们可以在一个整数数组中只存储一个[10000000](10^7)元素。”你从哪里得到这样的数字?如果数组的大小被分配为具有自动存储持续时间的变量,或者RAM的大小,如果它是动态分配的(通过使用'new','std :: vector' ,等等..),即使如此,还有操作系统的功能,如交换.. –

+0

@Carcigenicate全球声明 – Mukesh

回答

2

在C++中可以存储在数组中的元素的最大数量是多少?

理论上,上限为std::size_t。该值是实现定义的。这适用于大小为1(字节)的对象。您只能拥有大小为2的对象的一半。整数类型的大小是实现定义的(窄字符类型除外)。

实际上,存在其他限制。这取决于存储时间和系统。

自动变量的内存量在大多数系统上受到限制。究竟有多少取决于系统,并且有时可以配置,但是在桌面系统上,典型的默认值是一兆字节到几兆字节。

静态变量和动态对象通常没有这样的限制,上限是操作系统为进程提供的主内存+交换空间量。其上限是系统上的内存+交换量减去其他进程和操作系统内核使用的内存量。

较大的数组可以存储在磁盘上,并使用寻呼系统进行访问。这些对象的上限受虚拟内存量,文件系统和可用存储空间的限制。

相关问题