Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在我关闭程序之前,对象尚未被处理_C++_Memory Management - Fatal编程技术网

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操作系统会处理这个问题。
它将在程序完成后释放程序分配的所有内存(以及其他资源,如套接字)。

操作系统将处理此问题。
它将释放所有内存(以及其他资源,如套接字)在程序完成后由程序分配的。

A
SIGKILL
,或类似的Windows操作系统,将在不进行清理的情况下关闭程序。操作系统将回收内存和资源,如文件描述符/文件句柄。对此,您无能为力;“硬杀戮”对于不会自动终止的项目,信号是最后的手段


其他一些“软杀戮”信号可以得到适当的处理。

A
SIGKILL
,或类似的Windows操作系统,将在不进行清理的情况下关闭程序。操作系统将回收内存和资源,如文件描述符/文件句柄。对此您几乎无能为力;“硬杀戮”对于不会自动终止的项目,信号是最后的手段


其他一些“软杀伤”信号可以被适当地处理和处理。

例如,如果您使用Windows,那么关闭控制台窗口将强制关闭您的应用程序

您的程序分配的所有内存和操作系统句柄都将由操作系统本身释放,因此您不必担心这一点。您无法“保护”所有可能的强制应用程序终止


您应该制作一个在正常情况下不泄漏内存的程序,如果使用异常,则在抛出异常时不会泄漏。

如果您使用Windows,则关闭console窗口将强制关闭应用程序

您的程序分配的所有内存和操作系统句柄都将由操作系统本身释放,因此您不必担心这一点。您无法“保护”所有可能的强制应用程序终止


您应该制作一个在正常情况下不泄漏内存的程序,如果使用异常,则在抛出异常时不会泄漏。

任何现代操作系统都会管理它,并在关闭进程后清理进程分配的整个内存

别担心。你必须担心程序运行时的内存问题


当代码运行时。避免使用裸指针,如果需要指针,请尝试使用智能指针。

任何现代操作系统都会管理它,并在关闭进程后清理进程分配的整个内存

别担心。你必须担心程序运行时的内存问题


当代码运行时。避免使用裸指针,如果需要指针,请尝试使用智能指针。

您能定义“强制关闭”的含义吗?操作系统会为您清理它。这是一种优化,在进程关闭时不清理内存,因为它将被释放。“永远不会被释放”这不是真的,操作系统将清理所有剩余资源。单击Taskmanager中的“X”按钮或“Endprocess”就是我的意思。我错了吗?:(谢谢您定义“强制关闭”的内容)意味着?操作系统将为您清理。这是一种优化,在进程关闭时不清理内存,因为它无论如何都会被释放。“永远不会被释放”这不是真的,操作系统将清理所有剩余资源。单击Taskmanager中的“X”按钮或“Endprocess”就是我的意思。我错了吗(谢谢我会考虑:)谢谢。那么..是内存泄漏吗?是的,但是当你的代码立即关闭时,操作系统会清理你整个进程的内存。为什么我们要使用像“int*p=new int;//做点什么//;删除p”?谢谢:)我会考虑:)谢谢。那么..是内存泄漏吗?是的,但是当你的代码立即关闭时,操作系统会清理你进程的整个内存。为什么我们要使用像“int*p=new int;//做点什么//;删除p”这样的删除函数?谢谢:)