gpt4 book ai didi

c++ - 3D 数组 C++ 太大了吗?如何使用 3D 数组?

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

我正在以这种方式制作 3D 阵列:

#define P 1000 int 

SPACE3D[P*2][P*2][P*2];

但我得到以下编译错误:

Error 1 error C2148: total size of array must not exceed 0x7fffffff bytes

我可以做些什么来避免这个错误吗?

我也试过像这样初始化 3D 数组:

int SPACE3D[P*2][P*2][P*2]={0};

这样我就没有构建错误,但是程序崩溃了。

有什么建议吗?

最佳答案

您需要使用 newmalloc() 在堆上创建数组,而不是像您正在做的那样在堆栈上创建数组。例如:

int* SPACE3D = new int[P*2*P*2*P*2];

现在您需要使用算术对其进行索引。如果您更喜欢更自然、或许更安全的界面,可以在标准库之外找到大量可用的矩阵类。但是,请不要使用 vector 的 vector ,因为如果您的矩阵实际上是矩形的(即不是锯齿状/稀疏的),那将是非常低效的。

关于c++ - 3D 数组 C++ 太大了吗?如何使用 3D 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688981/

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