这可能是一个愚蠢的问题,但我很难在网上找到关于它的东西。可以局部变量分配吗?
我知道operator new如果分配内存失败会抛出bad_alloc exception,但是局部变量分配会发生什么?
想象我有一个系统,如果没有更多的可用内存,并在程序执行类似:
void do_something(){
int a = 0;
}
会发生什么?如何分配“a”所需的空间?它可以扔?
我的问题,从看到类似这样的地方代码:
void do_something() noexcept {
// some local variables being allocated
}
这让我想知道之间没有关系,除了和本地内存分配。另外,为了让事情变得更加混乱,我看到this这让我想知道实际发生内存分配的时间...
我想这会导致一个StackOverflow?尽管我从来没有碰到过我。 – Carcigenicate
我假设程序只会崩溃,因为它不能添加内存,所以它只会抛出一个错误? –
使用现代操作系统时,由于虚拟内存的原因,这种情况不会发生。 @CJHutchison – Sridharan