gpt4 book ai didi

c++ - 一个类的数组中的最大对象数

转载 作者:行者123 更新时间:2023-11-30 02:29:20 25 4
gpt4 key购买 nike

我有这门课:

class tree
{
public:
int row;
int column;
};

我想为 tree 类创建总共大约 1024 个对象,但是如果我在 tree a[90] 中将值增加到 90 以上,它会给出 段错误:

tree a[90]; //Ok
tree a[1024]; //Segmentation fault

我们可以创建的对象数量是否有最大限制,或者是否有任何其他解决方法可以以数组形式创建 1024 个对象?

最佳答案

Is there a max limit on the no. of objects we can create?

嗯,是的。这称为堆栈限制。这取决于你的筹码有多大。你的筹码量是:

stack_size = sizeof(int) * 2 * 90

如果在您的平台上 sizeof(int) 为 4(通常为 4),则您有 4 * 2 * 90 = 720 字节 的堆栈,这看起来 < em>非常小。

无论哪种方式,分配大量对象的正确方法是在 上,它通常比堆栈有更多的空间:

//std::vector allocates its elements on the heap
std::vector<tree> a(1024);

如果由于某种原因你不能使用 std::vector,你仍然可以使用老派风格的动态数组(虽然不推荐):

tree* a = new tree[1024];

关于c++ - 一个类的数组中的最大对象数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39600735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com