c++中new和delete修饰符与malloc和free函数的区别
2014-08-31 22:24
381 查看
//new修饰符和delete修饰符 #include <iostream> using namespace std; void main(void) { int arraysize; int *array; cin>>arraysize; array=new int[arraysize]; //开辟堆内存 for(int i=0;i<arraysize;i++) array[i]=i; for(int j=0;j<arraysize;j++) cout<<array[j]<<","; cout <<endl; delete[]array; //释放堆内存 array=NULL; cin.get(); cin.get(); }
在c++中分配内存的时候用的是new和delete修饰符,而在c语言中使用的是malloc和free来分配内存,对于两者的区别主要在于对对象的理解上
当在c++中使用分配内存的方式如上面代码所示时,其实就相当于使用mallao和free函数,本质上还是调用了这两个函数,所以此时没有两者没有多大区别,都是只为变量分配了内存.
当c++中需要为一个类对象分配内存时,这时候就体现出来了与mallac函数和free函数的区别,当使用new修饰符为一个内对象分配内存时,不仅要分配内存还要调用类的构造函数为对象进行初始化,同理delete修饰符时,要调用类的析构函数,然后释放内存.而用malloc和free函数是,将不能这样,所以,对于两者new\delete和malloc\free的区别主要在于类的内存的分配
相关文章推荐
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- C++ delete_new与free_malloc的区别_1
- C++入门学习:new,delete及其和malloc,free的区别
- C中的malloc()函数和free()函数与C++中的new()函数和delete()函数详解
- C++中,new/delete和malloc/free的区别
- new delete 是运算符,malloc,free是函数(区别)
- C++中,new/delete和malloc/free的区别
- C++中malloc/free与new/delete的区别及内存分配失败错误处理
- C++进阶—>malloc/free与new/delete的区别
- C++中new delete 与malloc free的区别
- C++中new,delete详解及其与malloc,free的区别
- c++中malloc,free,new,delete区别和联系
- C语言 malloc/free和C++中new/delete的区别
- malloc/free与c++中new/delete、operator new/operator delete与placement new的区别?
- C++中,new/delete和malloc/free的区别
- malloc() free()函数 和 new delete运算符的区别
- C语言 malloc/free和C++中new/delete的区别
- 关于 C++ 的 new、delete 与 C 的 malloc、free 的区别
- c++ 浅拷贝和深拷贝 指针和引用的区别 malloc(free)和new(delete)的区别 重载重写重定义
- c/c++ 复习基础要点01-const指针、指针函数 函数指针、new/delete与malloc/free区别与联系