结构内存限制

时间:2014-04-30 11:59:57

标签: c++ class struct

我对C ++中的struct有疑问。实际上,我的代码是这样的

struct SegmentTree {
    int segmentTree[2500000];

    some functions...
}

当我编译它时,它立刻给了我一个分段错误,但是当我尝试用类做同样的事情时,一切都运行良好。所以,我的问题是:我可以在结构中使用一些有限数量的变量,否则,问题是什么?

1 个答案:

答案 0 :(得分:1)

这样声明的数组将在堆栈上分配(与函数的局部变量相同)。静态数组中元素数量的限制由堆栈大小定义(可以使用编译器选项进行修改)。考虑使用动态分配的数组(甚至更好的std::vector)来代替使​​用堆。