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,或者应保证分配和释放存储空间所用的函数(运算符)一致。 源代码网供稿. |