【发布时间】:2015-03-20 16:47:03
【问题描述】:
以下代码是我在 c 中的用户定义函数的一部分
void genprime(long int m,long int n)
{
long int j,k,p[10000]={0},c,c1,c2,r;
int flag=0;
}
该函数包含生成素数的逻辑。我声明了所有变量类型,只要它是高范围所需的 int。我在执行时收到异常的程序终止消息。当我将所有变量声明为 int 时,它正在打印值但是仅适用于特定范围。请帮助解决此问题。在此先感谢
【问题讨论】:
-
你展示的代码不会崩溃,使用调试器找出崩溃发生的地方。
-
64 位机器上的 10000 个长整数是 80k。一般来说,这并没有太多的内存,但它可能比堆栈分配的可用内存要多。将
p移动到静态,或者使用malloc()分配它,这样会留下一个更合理大小的堆栈。
标签: c termination