繁体   English   中英

如何制作大小为 1000000000000 的字符数组

[英]How to make a character array of size 1000000000000

由于我是编程领域的新手,我试图制作一个非常大的字符数组,例如1000000000000但我的编译器显示错误:

数组太大

我正在使用涡轮增压 C++。

谁能告诉我怎么做?

你有几个问题:

首先Turbo-C++是一个16位的编译器,即使有世界上最好的意志,它也无法应付。 即使是 32 位编译器(最大地址空间刚好超过 4,000,000,000 字节)也无法应付。 您需要使用 64 位编译器。

您的下一个问题是,如果您尝试在堆栈上分配如此庞大的数组,它将无法容纳。 大多数系统使用大约 1MB 的堆栈。 您需要在堆上分配数组。 我通常(*)我会推荐使用std::vector (因为它管理为你释放内存)。 所以而不是:

char big[1000ull*1000*1000*1000];

你需要:

std::vector<char> big(1000ull*1000*1000*1000);

您的最后一个问题是很少有机器会安装 1TB 的 RAM。 在 Windows 10 上,您可以分配那么多的地址空间 - 但其中大部分将在交换中,而不是在 RAM 中。

*:这就是我不推荐std::vector 涉及内存映射文件或更有效的数据结构的东西会更好。 除非您解释您的实际问题,否则我们无法确定是什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM