【问题标题】:"Abnormal program termination" is displayed on execution of c program执行c程序时显示“程序异常终止”
【发布时间】: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


【解决方案1】:

尝试在堆中分配内存, long *p = malloc(10000 * sizeof(long));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多