我对C ++中的struct有疑问。实际上,我的代码是这样的
struct SegmentTree {
int segmentTree[2500000];
some functions...
}
当我编译它时,它立刻给了我一个分段错误,但是当我尝试用类做同样的事情时,一切都运行良好。所以,我的问题是:我可以在结构中使用一些有限数量的变量,否则,问题是什么?
答案 0 :(得分:1)
这样声明的数组将在堆栈上分配(与函数的局部变量相同)。静态数组中元素数量的限制由堆栈大小定义(可以使用编译器选项进行修改)。考虑使用动态分配的数组(甚至更好的std::vector
)来代替使用堆。