C++中new和malloc的区别
2016-06-08 00:00
323 查看
摘要: C++语法,运算佛,库函数
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行析构函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。 3,因此C++语言需要一个能完成动态分配分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。 4,C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存。 5、new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void指针。 一:new delete 是运算符,malloc,free是函数 二:malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 三:对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。 因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。
相关文章推荐
- C/C++面试遇到的几个知识盲点以及编程问题
- C++实现内存池MemoryPool 包含单线程和多线程
- C++Primer Plus 基础复习
- C++Primer Chapter3课后习题
- 学长的训诫C++
- #1094 : Lost in the City 找到几个当年c语言留下的坑
- 函数指针的正确理解 from C++ Primer Plus P242
- Michael &Scott 无锁队列 C++ 实现
- C++中的虚函数详解
- NDK工具使用,JNI开发
- C++实现多线程全局内存池
- Leetcode_c++:Construct Binary Tree from Preorder and Inorder Traversal(105)
- c++实验7--最大公约数和最小公倍数
- Leetcode_c++: Subsets II (090)
- c++/c 产生随机数
- Leetcode_c++: Merge Sorted Array (088)
- c语言实例之函数求参顺序
- 差分约束系统详解 BZOJ 2330 糖果
- C++ error:LNK2005 已经在*.obj中定义
- Leetcode_c++: Maximal Rectangle (085)