
Malloc与New的区别
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文介绍了C/C++编程语言中用于内存分配的关键字malloc和new之间的区别。通过对比两者的特性、应用场景及异常处理机制等方面,帮助开发者更好地理解和选择适合自身项目的内存管理方式。
在C++/C语言中,`malloc` 和 `free` 是标准库函数用于动态内存的申请与释放;而 `new` 和 `delete` 则是专门针对C++的语言运算符,同样实现了分配与回收内存的功能。
对于非内置数据类型的对象来说,仅仅使用 `malloc/free` 并不能满足它们在创建和销毁时自动执行构造函数和析构函数的需求。由于 `malloc/free` 是库函数而非语言操作符,并不在编译器的控制范围内,因此无法通过这些函数来实现对构造与析构过程的支持。
所以C++引入了新的运算符 `new` 和 `delete` 来解决这个问题:前者用于动态分配内存并初始化对象,后者则负责清理资源并将已分配的空间释放回系统。值得注意的是,`new/delete` 并不是库函数而是语言特性的一部分。
在实践中,由于需要兼容性原因,C++程序有时会调用一些基于C的函数,在这种情况下只能使用 `malloc/free` 来管理动态内存。
全部评论 (0)
还没有任何评论哟~


