当前位置:首页 > 网络编程 > 软件语言 > C语言 > C++的动态内存分配

C++的动态内存分配

点击次数:27 次 发布日期:2008-12-01 11:55:16 作者:源代码网
源代码网推荐

源代码网整理以下    c程序中,动态内存分配是通过调用诸如malloc()和free()等库函数来实现,而C++给出了用new和delete运算符进行动态内存分配的新方法。
    以下是c++程序中用新方法实现动态内存分配的例子。

源代码网整理以下
    void func()
    {int*i=new int;//为指针i分配存储空间&
        *i—10;
    tOut<<i;
    delete i;//释放i指向的存储空间
    }
    用传统的C程序实现是这样的:
    void func(void)
    {int*il
    i=malloc(sizeof(int));
    *i=10;
    printf(”%d",*i);
    free(i);
    }

源代码网整理以下
    显然C++的写法更加直观、易读,而且在分配存储时无需显式地计算int所占存储空间的大小。然而,在C++中增加new和delete机制的目的远不在于此,而是为了实现更大的灵活性。比如,任何类可通过运算符重载来定义自己的new和delete,因为用户定义的类,由于各自特定的应用,其对象的分配和释放的过程并不一定一样。

源代码网整理以下
    由于所用的存储管理系统不一样,同时混用它们可能会导致问题。为此,建议读者最好只用C++的new和delete,或者应保证分配和释放存储空间所用的函数(运算符)一致。

源代码网供稿.
上一篇: C语言类的定义  下一篇: C语言常规改进
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华