程序在哪里分配用于抛出对象的内存?

问题描述 投票:1回答:1

如果我从函数h()抛出一些字符串,则>

f()->g()->h()

以这种方式

throw std::string("error");

并且仅捕获f()。程序在哪里为该字符串分配内存?显然,它不能在h()的堆栈上分配它。如果这是f()的堆栈,它将以什么方式知道应该在什么位置分配?

如果我以这种方式从函数h()f()-> g()-> h()抛出一些字符串,则抛出std :: string(“ error”);并且仅捕获f()。程序在哪里为该字符串分配内存?显然不能...

c++ memory stack throw
1个回答
0
投票

如果这是f()的堆栈,它以何种方式知道应在何处分配?

© www.soinside.com 2019 - 2024. All rights reserved.