throw
たとえば、関数で使用する場合
try {
// ...
throw MyExceptionType()
// ...
} catch(MyExceptionType& exp){ /* ... */ }
どこにMyExceptionType
割り当てられますか?それはスタックにありますか?exp
もしそうなら、私のcatch
ブロックで変更しても安全ですか? 内部で他の関数を呼び出しcatch
てスタックを使用するのはどうですか?
同様のケースで私は持っています:
try {
char my_array[32];
throw my_array;
} catch(char* error_string){ /* ... */ }
error_string
プロセススタックのどこかを指していますか? catch
ブロック内でいくつかの関数を呼び出すと、配列をオーバーランできますか?