gpt4 book ai didi

c++ - 未在范围中声明2d数组中大于10 ^ 5的值

转载 作者:行者123 更新时间:2023-12-02 10:24:05 24 4
gpt4 key购买 nike

当我尝试
int global[10000][10000];它有效,但何时
int global[100000][100000];当我尝试访问它时,它给了我错误:

global was not declared in the scope.



有什么答案吗?

这是我的测试代码:
#include<iostream>
#include<bits/stdc++.h>

int global[100000][100000];
using namespace std;

int main(){
int i=0;
while(i<=10){
cout << global[i][i];
i++;
}
return 0;
}

最佳答案

我尝试在g++ 8.2.0中重现该错误,但它会产生一个不同的但链接器错误:

/tmp/cceGsEkP.o: In function `__static_initialization_and_destruction_0(int, int)':
temp.cxx:(.text+0x60): relocation truncated to fit: R_X86_64_32 against `.bss'
temp.cxx:(.text+0x6f): relocation truncated to fit: R_X86_64_32 against `.bss'

上面的功能负责在main之前分配静态内存。由于为数组分配了连续的内存,因为大约300MB的内存需求,所以 int global[10000][10000]是可能的,但是

相反,您可以:
  • 尝试减小尺寸,这将需要您删除多余的信息,这些信息将不会在进一步的计算中使用。
  • 如果您无法缩小尺寸,但不会使用所有状态,则可以使用std::map之类的东西。
  • 关于c++ - 未在范围中声明2d数组中大于10 ^ 5的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54146626/

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