If I throw some string from function h()
f()->g()->h()
in this way
throw std::string("error");
and catch only in f(). Where are program allocate memory for this string? Obviously it can't allocate it on the stack of h(). If this is stack of f() in what way it know in what place it should allocate?