c++中的new和delete
来源:互联网 发布:安卓微信数据迁移 编辑:程序博客网 时间:2024/05/16 19:14
c++为程序员在堆上分配空间时提供了这两个关键字,那么这两个关键字与c语言中的malloc和free有什么区别呢?其实从低层的角度讲,这两个函数没有什么区别。都会最终去调用kernel库中的headAloc函数和headfree函数。
让我们来看一个小的例子
#include <iostream>using namespace std;class test{public:test();test(int a,int b);~test();private:int a;int b;};test::test(){this->a = 0;this->b = 0;cout<<"test()"<<endl;}test::test(int a,int b){this->a = a;this->b = b;cout<<"test(int,int)"<<endl;}test::~test(){cout<<"~test()"<<endl;}int main(){test *t =new test;delete t;return 0;}
我们到程序的反汇编下去看对应的反汇编代码
跟进去call operator new,发现实际是用malloc分配空间
再看看delete
感兴趣的可以自己跟进一下,然后我们会发现最后不管new和delete还是malloc和free函数都会调用kernel中的heapAloc和heapfree函数。
阅读全文
0 0
- C++:new和delete
- new和delete【C++】
- C++ 中的 new/delete 和 new[]/delete[]
- C++中的new/delete和new[]/delete[]
- C++ 中的 new/delete 和 new[]/delete[]
- C++中的new delete和new[] delete []
- C++中的new/delete和new[]/delete[]
- C++ 中的 new/delete 和 new[]/delete[]
- C++中的new和delete
- C++中的new和delete
- C++中的new和delete
- C++中的new和delete
- C++中的new和delete
- C++中的new和delete
- Qt中的delete和new
- c++中的new和delete
- C++中的new和delete
- C++new和delete重载
- 洛谷P2340 奶牛会展
- [第六季]9.定时器与进度条案例
- 2-2grep\计划任务
- 2017-8-10
- java中同步和异步有什么异同
- c++中的new和delete
- POJ-3051
- 数据结构--图--图的存储结构/DFS/BFS
- 没搞懂今天到底学的是啥.....
- 小数到分数的转换
- java 无法下载问题
- (学习笔记)spring入门之Bean的依赖注入
- SQL解惑-谜题32计算税收
- [python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录