为什么此代码超时
Why is this code having a timeout?
可能的重复项:
为什么这段代码会崩溃?
请告诉我以下代码有什么问题???为什么会崩溃???
我无法将 collatz 值存储在数组中,但是如果我想单独打印它们,它可以完美地工作。
#include <iostream>
long collatz(long);
int main()
{
using namespace std;
long i=3,t[1000000],p;
t[0]=0,t[1]=0,t[2]=0;
for(i=3; i<1000000; i++)
{
p=collatz(i);
t[i]=p;
}
cin.clear();
cin.get();
}
long collatz(long n)
{
long count=0;
do {
if (n%2==0)
{
n=n/2;
count+=1;
}
else
{
n=((3*n)+1);
count+=1;
}
} while(n!=1);
return count;
}
堆栈分配很可能用于:
long t[1000000];
失败。因此,当您实际写入数组时,它会调用未定义的行为。
动态分配或使用标准容器。
在堆栈上创建一百万个元素很可能导致堆栈溢出(没有双关语!这会导致i
被覆盖,从而导致无限循环。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 如何改进我的代码,使其不会因超时而终止?(黑客排名挑战)
- 在注入的 Dll 的 DllMain 中运行代码导致注入超时
- 关于代码超时
- 为什么我的代码给出运行时错误超时
- 为什么此代码超时
- 带超时的多线程面向对象套接字代码