c - 有没有办法在 C 中创建一个大小为 530000 的数组?
问题描述
我目前正在模拟一个相互相互作用的原子样本。为了做到这一点,我正在计算它们之间的所有相对距离以计算力。现在,对于后分析,我需要为每个时间步长一个包含所有相对距离的数组。通过在每个时间步长的 txt 中写入这个数组,我会得到一个巨大的数据集。假设我有 4 个粒子。那么数组的大小应该是 4*3 以避免存储一个粒子与其自身的距离。问题是我有 729 个粒子,大小为 530712,我得到这个:“进程返回 -1073741571 (0xC00000FD) ”。我在声明这个数组之后打印了一些东西,除非大小小于 250000,否则它不会被打印出来。有什么建议吗?
解决方案
在函数中定义的数组通常位于堆栈上。该大小的数组将溢出堆栈的大小,从而导致您遇到错误。
相反,用于malloc
动态分配数组。动态分配可能比堆栈允许的大得多。
推荐阅读
- graphics - STM32上的VGA像素分组
- android - 将我的网站限制为仅在特定设备上加载
- spring-boot - 为 spring boot 2.2.4.RELEASE 传递配置文件详细信息的替代选项
- flutter - 如何在一个类中制作多个可重用的小部件?
- python - Python-Eve:查询以字符串形式保存的 IP 地址
- docker - 启动容器进程导致“exec:\”go\“:$PATH 中找不到可执行文件”:未知
- ruby-on-rails - Rails 6 ActiveStorage - 参数中不允许测试fixture_file_upload()
- c# - 为什么我不能从应用程序中的 SQLITE TABLE 中读取 TEXT 属性?
- nlp - 使用 AI 服务识别自由文本搜索字段问题?
- spring - 无法使用 JdbcTemplate 更改 Oracle 会话