如何声明大小为2 ^ 18的结构数组

时间:2019-05-07 02:03:44

标签: c arrays size limit

这是我的结构

struct Entry {
    int a;
    int b;
};

int main() {

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

    return 0;
}

我想声明一个Entry数组,其大小为2 ^ 18(262144个元素),但是我不能这样做。看来我超越了极限。还有另一种方法吗?

1 个答案:

答案 0 :(得分:4)

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