我有一个要在 Oracle Linux OS 上运行的 C++ 应用程序。
考虑一下,我用 new
创建了几个对象。运算符(operator)。虽然我已经使用 delete 操作符来解除分配它,但是 force kill 命令不会到达这个实现。
但是,如果我强制终止( kill -9
)进程,动态分配的内存(使用 new
运算符)是否会被操作系统取消分配?由于我无法找到直接的答案,因此我想了解一些信息。
提前致谢。
最佳答案
But, if I force kill (
kill -9
) the process, will the dynamically allocated memory (usingnew
operator) be de-allocated by the operating system?
内存通过虚拟内存系统和内存管理单元 (MMU) 与进程相关联。因此,是的,所有内存(不仅仅是通过
new
分配的内存)都将被释放。异常(exception)情况是全局进程间通信 (IPC) 资源,例如共享内存、缓存文件等。
关于c++ - linux 中的 force kill 命令 (kill -9) 是否会在 C++ 应用程序中使用 new 运算符清理动态分配的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63668226/