zoukankan      html  css  js  c++  java
  • C++动态内存分配

    C++ 程序中的内存分为两个部分:

    • 栈:在函数内部声明的所有变量都将占用栈内存。
    • 堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。

    很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在 C++ 中,您可以使用特殊的运算符为给定类型的变量在运行时分配堆内的内存,这会返回所分配的空间地址。这种运算符即 new 运算符。如果您不再需要动态分配的内存空间,可以使用 delete 运算符,删除之前由 new 运算符分配的内存。

    如果堆内存已使用完,则可能无法成功分配内存,所以可以检查new运算符返回的指针是否为空指针:

    double* pvalue = NULL;
    if (!(pvalue = new double))
    {
        cout << "out of memory." << endl;
        exit(1);
    }

    new和malloc()区别

    malloc() 函数在 C 语言中就出现了,在 C++ 中仍然存在,但建议尽量不要使用 malloc() 函数。new 与 malloc() 函数相比,其主要的优点是,new 不只是分配了内存,它还创建了对象。

    数组的动态内存分配

    double* pvalue = NULL;
    pvalue = new double[20];
    delete[] pvalue;
  • 相关阅读:
    Ruby窗口程序
    RubyWin32Api Win32OLE
    Ruby网络服务
    Ruby 文件处理
    Ruby基础数据类型
    Ruby基础类型,动态特性,代码块
    Ruby类,模块1
    Ruby准备工作
    js变量作用域
    ExecuteStoreQuery
  • 原文地址:https://www.cnblogs.com/larry-xia/p/10263751.html
Copyright © 2011-2022 走看看