首页 > 解决方案 > 有没有办法在 C 中创建一个大小为 530000 的数组?

问题描述

我目前正在模拟一个相互相互作用的原子样本。为了做到这一点,我正在计算它们之间的所有相对距离以计算力。现在,对于后分析,我需要为每个时间步长一个包含所有相对距离的数组。通过在每个时间步长的 txt 中写入这个数组,我会得到一个巨大的数据集。假设我有 4 个粒子。那么数组的大小应该是 4*3 以避免存储一个粒子与其自身的距离。问题是我有 729 个粒子,大小为 530712,我得到这个:“进程返回 -1073741571 (0xC00000FD) ”。我在声明这个数组之后打印了一些东西,除非大小小于 250000,否则它不会被打印出来。有什么建议吗?

标签: carrayssize

解决方案


在函数中定义的数组通常位于堆栈上。该大小的数组将溢出堆栈的大小,从而导致您遇到错误。

相反,用于malloc动态分配数组。动态分配可能比堆栈允许的大得多。


推荐阅读