gpt4 book ai didi

c - 程序在停止工作之前可以执行的最大计算次数是否存在?

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:04 25 4
gpt4 key购买 nike

对于这个问题的一般性质,我深表歉意,但我想不出一个好的表达方式...简而言之,我是一个初学者,编写了一个程序(用 C 语言,使用 CodeBlocks-EP)执行大量的计算(为了简单起见,我用一个无意义的循环替换了真正的(非常有用的)代码,它也有大量的计算!)。

    int x, i;

for (i=0; i<9999999999999999; i++){
x=x+1;
x=x-1; //real code is much more useful but spans 3000 lines!
}
printf("x is %i", x); //useful output

正如我所说,它工作正常,并提供有用的输出。然而,最近,我试图让它在虚拟一年的每一天都运行一次,而不是只运行一天,如下所示:

    int x, i, day;

for (day=0; day<365; day++){
for (i=0; i<9999999999999999; i++){
x=x+1;
x=x-1; //real code is much more useful but spans 3000 lines!
}
}
printf("x is %i", x); //useful output

在获得有用的输出之前,我收到了以下消息:

My_program.exe 已停止工作。一个问题导致程序停止正常工作。 Windows 将关闭该程序并在有可用解决方案时通知您。进程终止,状态为 -1073741510(24 秒)。

在进一步检查时,它在第 60 天左右停止工作。但是(这是奇怪的部分...),如果您选择更短的时间段,该程序会工作,例如第 0-60 天,或第 30-71 天,或第 60-101 天(因此它不会因为第 61 天的编程问题而中断)。

如果我尝试做超过 60 天(甚至是 0-70 天),它会在大约 60 天后中断。除了由于“计算太多”而崩溃之外,我想不出有什么问题......但我从未听说过这个问题。我是一个新手,所以任何建议都将不胜感激!

我明白没有实际代码没有帮助,但在 3000 行时,用更简单的代码替换它似乎是明智的!但我可以确认它适用于一年中的每一天,当作为单独的单独的日子运行时......只是不是作为一个 block !如果我可以通过提供任何其他信息来提供帮助,请告诉我。

非常感谢,

马特

更新(2013 年 12 月 26 日 23:21):非常感谢所有的回复 - 原来是内存泄漏,我错过了一行代码重置其中一个计数器,它反过来试图然后做一个巨大的矩阵……很抱歉我是个菜鸟,不知道如何诊断它,但我觉得我学到了一些东西;感谢您的帮助!

最佳答案

Is there a maximum number of calculations that can be performed by a program before it stops working?

没有。您的程序中可能存在内存泄漏或数字溢出,并且仅在运行 60 天后才会出现。

关于c - 程序在停止工作之前可以执行的最大计算次数是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com