Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
#include <iostream> using namespace std; int main() {int primes[521153]; return 0; }
这适用于任何小于 521153 的数字。这样它就不起作用并返回一个非常大的负数。
你已经超出了你的筹码量。C 语言的工作方式类似于“便携式汇编器”,所有语言操作都直接映射到机器操作上,即使这些操作会导致“未定义行为”。在这种情况下,您的堆栈与堆发生冲突,您的程序会覆盖自己的大脑并死掉。
使用int *primes = new int[BIG_NUMBER];IIRC,如果它不能分配那么多内存,它可以很好地引发异常。你的堆(在哪里new获取它的存储)可以任意增长(在现代架构上),而你的堆栈不能。您的 C++ 教程将为您定义所有这些术语。
int *primes = new int[BIG_NUMBER];
new