わかりやすい例
確実にスタックが溢れるusize::MAX回の再帰
fn main() {
assert_eq!(usize::MAX, count(usize::MAX));
}
fn count(n: usize) -> usize {
// println!("{:p}", &n);
match n {
0 => 0,
n => 1 + count(n - 1),
}
}
①デバッグモードだとスタックオーバフロー
②リリースモードだと溢れずアサートも通る
③リリースモードでもコメントになっているprintlnの//を外すと最適化されなくなるようでスタックオーバフロー
Rust part15
■ このスレッドは過去ログ倉庫に格納されています
355デフォルトの名無しさん
2022/05/26(木) 22:19:48.49ID:LHrMwKV/■ このスレッドは過去ログ倉庫に格納されています
