gpt4 book ai didi

c++ - 大小为 1 MB 的数组

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

#include<iostream>
#include <intrin.h>
using namespace std;
unsigned __int64 TimeValue=0;

unsigned __int64 rdtsc(void)
{
return __rdtsc();
};

void time_start() { TimeValue=rdtsc(); }
long long time_stop() {
return (rdtsc()-TimeValue);
}
int main()
{
long x[262144],i,k,r;
int j;
x[0] = 0;
for (i=1; i<262144; i++)
{
long r = rand()%i;
x[i] = x[r];
x[r] = i;
}
time_start();
for (j=0; j<1000; j++)
for (k=0, i=0; i<262144; i++)
k = x[k];
cout<<time_stop()/1000/262144;
}

在程序中,我需要创建一个大小为 1 兆字节的数组。在调试 long x [262144] 行的程序时,出现错误:“dgdxgdrfy.exe”中未处理的异常“0x00ff1997”:0xC00000FD:堆栈溢出。为什么会这样以及如何解决?

最佳答案

尝试将其声明为全局变量 - 在 main 方法 () 之外。否则它将分配在远小于堆的堆栈上。另一种解决方案是通过 new 使用动态分配,但这更容易出错。

关于c++ - 大小为 1 MB 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10012976/

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