【问题标题】:How can I declare a struct array with the size 2^18 [duplicate]如何声明大小为 2^18 的结构数组 [重复]
【发布时间】:2019-05-07 02:03:43
【问题描述】:

这是我的结构

struct Entry {
    int a;
    int b;
};

int main() {

    struct Entry data[260000]; //ok
    struct Entry data[262144]; //crash

    return 0;
}

我想声明一个大小为 2^18(262144 个元素)的 Entry 数组,但我不能这样做。好像我超过了最大值。还有其他方法吗?

【问题讨论】:

  • 这不会在 64 位 linux 上崩溃。
  • @Jasen 它在 Windows 10 64bit 上崩溃。我不确定它与操作系统或 IDE 或其他东西有关。

标签: c arrays size limit


【解决方案1】:

auto 上下文(在堆栈上)中没有足够的空间用于该数组, 将其声明为静态或全局,或动态分配。

【讨论】:

  • 完美!谢谢。
  • ... 或增加堆栈大小。链接器选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多