在 C++ 中处理巨大的多维数组

2023-12-11

我正在用 C++ 设计一款类似于 Minecraft 的游戏,它在内存中保存了大量的地形数据。一般来说,我想在内存中存储一​​个数组,即[5][4][5][50][50][50]。这还不错,因为它相当于大约 100mb 的虚拟内存,而我的结构只有大约 8 个字节。

但是,我无法找出处理此问题的最佳方法。我确实希望它位于虚拟内存中,但显然不在堆栈中。我一直犯一些在堆栈上创建这个数组的错误,导致堆栈溢出。我想做的事情如下。这只是我拼凑在一起的代码,为您提供我正在做的事情的示例,我的机器上有具有正确语法的代码,我只是不想让帖子变得混乱。

typedef struct modelBlock
{
    // Information about the blocks
} BLOCK;

typedef struct modelGrid
{
    bool empty;

    BLOCK blocksArray[50][50][50];

} GRID;


class Parent
{
     Child* child;
     Parent(void);
}

Parent::Parent()
{
    Child c;
    child = &c;
}

class Child
{
     GRID grids[5][4][5];
}

但是,每次执行此操作时,都会导致堆栈溢出(适当的网站选择,对吧?)。我尝试使用基于指针的数组,但在数据超出其范围之外丢失时遇到了很多麻烦。

如果有人能给我一些关于如何将数据存储在堆而不是堆栈上的见解,或者如果我应该使用其他方式创建数组,我将非常感谢您的帮助。由于开销,我想避免使用向量,尽管我不确定它有多大。


Use 升压::多数组

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中处理巨大的多维数组 的相关文章

随机推荐

  • 第 5 次迭代后阶乘循环结果不正确

    我目前正在学习微积分预科课程 并认为我会编写一个快速程序 给出阶乘 10 的结果 在测试它时 我注意到在第 5 次迭代后我得到了不正确的结果 然而 前 4 次迭代是正确的 public class Factorial public stat
  • 使用 C# 中的正则表达式返回包含匹配项的整行

    假设我有以下字符串 string input Hello world n Hello foobar world n Hello foo world n 我有一个正则表达式模式 由我正在编写的工具的用户指定 foobar 我想返回每行的整行i
  • 获取嵌套字典中所有键的列表

    我想获取包含列表和字典的嵌套字典中所有键的列表 我目前有这段代码 但似乎缺少向列表添加一些键 并且还重复添加了一些键 keys list def get keys d or l keys list if isinstance d or l
  • NSDate initWithString

    将 Xcode 更新到版本 4 2 后 我在当前项目中收到以下警告 警告 NSDate 可能不会响应 initWithString 我必须做什么 此方法仅在 Mac OSX 页面的文档中注明 在 iOS 中未注明 我不清楚为什么苹果有不同的
  • 如何将索引处的行插入排序的ag-grid

    我有一个启用排序的网格设置 每行都有一个重复按钮 复制行时 我想在复制的行下方插入新行 这适用于默认排序 但如果您对列进行排序 例如状态 它会将该行随机插入到网格中 从而很难找到 我注意到网格在保存过程中的某个时候会进行排序 但在它得到分配
  • android httpclient 和 utf-8

    我正在尝试连接到一个网络服务 我的查询中保存了一些数据 不好的是 这些数据包含utf 8字符 这会出现问题 如果我只是使用普通字符串调用 HttpGet 则会出现 非法字符 异常 所以我用谷歌搜索并尝试了一些 utf 8 魔法 HttpCl
  • jQuery 按类对列表项进行分组

    我有一个具有相同类列表项的无序动态列表 我想将相同的类列表项分组到主 ul 中的一个 ul 中 如何对相同类别的列表项进行分组 我想转换下面的动态列表 ul li class a1 Some Content li li class a1 S
  • 使用c#搜索文本文件并显示行号和包含搜索关键字的完整行

    我需要帮助使用 c 搜索文本文件 日志文件 并显示行号和包含搜索关键字的完整行 这是对以下内容的轻微修改 http msdn microsoft com en us library aa287535 28VS 71 29 aspx int
  • 如何为多个进程缓存 eToken PIN

    我有一个 NET c 应用程序 它使用 我的 证书存储中的 x509Certificate2 最初来自 eToken 设备 当我使用证书 解密数据或将其用作 Web 请求的客户端证书 时 它会询问设备 PIN 一次 之后 它会被缓存 用户不
  • Glassfish V3.x 和远程独立客户端

    连接到a绝对没问题ActiveMQ作为独立客户端 您唯一需要做的就是添加activemq all 5 4 1 jar就这样 prop put Context SECURITY AUTHENTICATION system prop put C
  • 仅接受使用 scanf 输入的数值

    如何确保用户仅输入数字值而不是字母数字或任何其他字符 另外 要寻找什么来插入不正确输入的错误消息 include
  • Laravel 5.5:会话不起作用

    我在用着Session put client id 设置一个会话值 该值保留在控制器内和应用程序内的其他位置 但我通过 Vue 的 API 路由调用的控制器除外 我已经进行了编辑 driver gt env SESSION DRIVER d
  • 如何使用 C 以编程方式在 Windows 7 上设置 IP 地址

    我正在开发一个需要能够设置 IP 地址的应用程序 使用命令提示符 Netsh接口IP设置地址 它可以工作 但是 c 中的等效项是什么 Thanks 我认为您需要 AddIPAddress API 参考添加IP地址函数MSDN 文档中有一个很
  • 将word文档插入另一个word文档而不改变格式VBA

    首先 我通过用户窗体上的按钮将 Word 文档 doc1 复制到新的 Word 文档 并采用其格式 其次 我在这个word文档 填充有doc1 的末尾插入一个新的word文档doc2 doc1和doc2有文本和表格以及各种颜色 每次我按下另
  • JSP/HTML 页面到 PDF 的转换 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 如何将 JSP HTML 文件转换为 PDF 我想将网页的特定部分转换为 PDF 文件 是否可以 是的 好好看看展位阿帕奇FOP and iText
  • 如何在 Excel 中查找拼写错误的文本之间的匹配项?

    我有两列数据 其中有一百个名字 我需要找到匹配项 问题是第二列上的名称与第一列上的名称不完全相同 很难用一百个名字来匹配他们 excel中是否有任何公式至少可以给出数据的公差 例如 Setyadi 与 Setiadi 或 Tak Jelan
  • 时间戳/日期作为 cassandra 列族/hector 的关键

    我必须创建并查询一个复合键为 timestamp long 的列族 还 查询时我想触发时间戳范围查询 例如 xxx 和 yyy 之间的时间戳 这可能吗 目前我正在做一些非常有趣的事情 我知道这是不正确的 我为给定范围创建带有时间戳字符串的键
  • Codeigniter simple_query 与查询生成器(插入、更新和删除)

    根据文档 simple query不会返回任何数据库结果集 也不会设置查询计时器 或编译绑定数据 或存储查询以进行调试 正如在我的 CodeIgniter 中一样 我使用 CI 提供的查询生成器来生成查询 那么 这些用于插入 更新和删除的查
  • 从非 UI 线程弹出对话框

    我正在开发一个面向团体的网络应用程序 问题是 当我要加入一个组时 它首先检查该组是否安全 如果是 它会要求输入用户名和密码 获得组安全性可能需要几秒钟 因此我为整个过程生成一个新线程 我想弹出一个对话框 以防该组需要安全性 我认为这可能与后
  • 在 C++ 中处理巨大的多维数组

    我正在用 C 设计一款类似于 Minecraft 的游戏 它在内存中保存了大量的地形数据 一般来说 我想在内存中存储一 个数组 即 5 4 5 50 50 50 这还不错 因为它相当于大约 100mb 的虚拟内存 而我的结构只有大约 8 个