|
1
1
不,这与堆栈与堆无关。托管程序中的堆栈与本机程序中的堆栈没有区别。在托管程序中使用本机代码并不会降低它破坏堆、跺堆栈帧、覆盖缓冲区末端、调用未定义行为(通常是由于访问冲突导致本机代码崩溃)的可能性。 将它存储在堆栈和堆中的区别在于所造成的损坏。是的,堆损坏可能需要一段时间才能产生副作用。通常比堆栈帧损坏要长得多,包括从不损坏。 |
|
|
2
0
我猜你的析构函数有个错误。当程序退出时,析构函数在第一种情况下会关闭,但在第二种情况下不会关闭。你可以通过添加
在第二个case代码中的某个地方,使用调试器查看是否得到异常。然后在你的析构函数中解决问题。 |