https://www.jb51.cc/csharp/1193262.html

编程之家收集整理的这篇文章主要介绍了C++中动态内存分配与命名空间介绍编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本篇文章给大家带来的内容是介绍C++中的动态内存分配与命名空间,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、C++中的动态内存分配

● 通过new关键字进行动态内存申请

● C++中的动态内存申请时基于类型进行的

delete关键用于内存释放

C语言其实是不支持动态内存分配的,是通过malloc函数来实现的,可能有一些硬件根本不支持malloc;而C++ new一个关键字,不管在任意编译器上,任意硬件平台上都是能够进行动态内存分配的,这是本质区别。

malloc是基于字节来进行动态内存分配的,new则是基于类型来进行动态内存分配

// 使用和C语言一样// delete[]  说明所要释放的指针是指向一片数组空间的,释放整个数组空间,如果用delete的话,pointer指向的是数组的首元素地址,释放的就是首元素的内存空间,其余元素的内存空间并没有释放,会造成内存泄漏
// p所指向的内存空间,至少占用了40个字节,保证够用,可能分配得更多

new关键字与malloc函数的区别:

new关键字是C++的一部分

malloc是由C库提供的函数

new以具体的类型为单位进行内存分配

malloc以字节为单位进行内存分配

new在申请单个类型变量时可以进行初始化

malloc不具备内存初始化的特性

new关键字的初始化: