[英]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.