gpt4 book ai didi

c++ - C++在局部变量的内存上是否有上限?

转载 作者:行者123 更新时间:2023-12-02 10:24:30 28 4
gpt4 key购买 nike

我有一个程序需要使用100M +条目来启动unordered_map<int,int>。只要机器具有足够大的内存,我们是否可以声明所需的局部变量,这是真的吗?还是即使机器具有128GB之类的巨大内存,局部变量的大小还是有一些(可调)上限?我知道unordered_maplarge内存开销。

我之所以担心,是因为我在运行JAVA程序时遇到了这样的问题。我知道JAVA具有JVM,而C++则不需要。

我正在具有128GB内存的Linux机器上开发代码,但是潜在的客户可能会在具有8GB内存的Linux机器上使用它。

代码如下:

int func() {
unordered_map<int,int> mp;
for (int i=0; i<INT_MAX; i++) mp[i] = i-1;
return mp.size();
}

This讨论了堆内存,但是我在这里仍然有些困惑。

最佳答案

以我作为C++程序员的经验,您无法声明所需的本地数组。局部变量存储在“调用堆栈”中。但是在您的情况下,当您使用STL时,应该没有问题,因为使用STL数据结构时,“调用堆栈”中仅存储了少数几个属性,而数据结构中的元素也存储在了堆中。

关于c++ - C++在局部变量的内存上是否有上限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211854/

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