C++ 在我关闭程序之前,对象尚未被处理
我英语不好,但我希望你能理解我说的:)我正在努力提高我的技能 好的,我有一些代码如下:C++ 在我关闭程序之前,对象尚未被处理,c++,memory-management,C++,Memory Management,我英语不好,但我希望你能理解我说的:)我正在努力提高我的技能 好的,我有一些代码如下: int main() { int x; int* p = new int(); cin >> x; // waitting for user enter a integer number // BUT, what if the user force closes the program? cout << "The instructions f
int main()
{
int x;
int* p = new int();
cin >> x; // waitting for user enter a integer number
// BUT, what if the user force closes the program?
cout << "The instructions from this to the end are not going to be run!" << endl;
delete p;
//..
return 0;
}
intmain()
{
int x;
int*p=新的int();
cin>>x;//等待用户输入整数
//但是,如果用户强制关闭程序怎么办?
cout操作系统会处理这个问题。
它将在程序完成后释放程序分配的所有内存(以及其他资源,如套接字)。操作系统将处理此问题。
它将释放所有内存(以及其他资源,如套接字)在程序完成后由程序分配的。ASIGKILL
,或类似的Windows操作系统,将在不进行清理的情况下关闭程序。操作系统将回收内存和资源,如文件描述符/文件句柄。对此,您无能为力;“硬杀戮”对于不会自动终止的项目,信号是最后的手段
其他一些“软杀戮”信号可以得到适当的处理。ASIGKILL
,或类似的Windows操作系统,将在不进行清理的情况下关闭程序。操作系统将回收内存和资源,如文件描述符/文件句柄。对此您几乎无能为力;“硬杀戮”对于不会自动终止的项目,信号是最后的手段
其他一些“软杀伤”信号可以被适当地处理和处理。例如,如果您使用Windows,那么关闭控制台窗口将强制关闭您的应用程序
您的程序分配的所有内存和操作系统句柄都将由操作系统本身释放,因此您不必担心这一点。您无法“保护”所有可能的强制应用程序终止
您应该制作一个在正常情况下不泄漏内存的程序,如果使用异常,则在抛出异常时不会泄漏。如果您使用Windows,则关闭console窗口将强制关闭应用程序
您的程序分配的所有内存和操作系统句柄都将由操作系统本身释放,因此您不必担心这一点。您无法“保护”所有可能的强制应用程序终止
您应该制作一个在正常情况下不泄漏内存的程序,如果使用异常,则在抛出异常时不会泄漏。任何现代操作系统都会管理它,并在关闭进程后清理进程分配的整个内存
别担心。你必须担心程序运行时的内存问题
当代码运行时。避免使用裸指针,如果需要指针,请尝试使用智能指针。任何现代操作系统都会管理它,并在关闭进程后清理进程分配的整个内存
别担心。你必须担心程序运行时的内存问题
当代码运行时。避免使用裸指针,如果需要指针,请尝试使用智能指针。您能定义“强制关闭”的含义吗?操作系统会为您清理它。这是一种优化,在进程关闭时不清理内存,因为它将被释放。“永远不会被释放”这不是真的,操作系统将清理所有剩余资源。单击Taskmanager中的“X”按钮或“Endprocess”就是我的意思。我错了吗?:(谢谢您定义“强制关闭”的内容)意味着?操作系统将为您清理。这是一种优化,在进程关闭时不清理内存,因为它无论如何都会被释放。“永远不会被释放”这不是真的,操作系统将清理所有剩余资源。单击Taskmanager中的“X”按钮或“Endprocess”就是我的意思。我错了吗(谢谢我会考虑:)谢谢。那么..是内存泄漏吗?是的,但是当你的代码立即关闭时,操作系统会清理你整个进程的内存。为什么我们要使用像“int*p=new int;//做点什么//;删除p”?谢谢:)我会考虑:)谢谢。那么..是内存泄漏吗?是的,但是当你的代码立即关闭时,操作系统会清理你进程的整个内存。为什么我们要使用像“int*p=new int;//做点什么//;删除p”这样的删除函数?谢谢:)