https://www.jb51.cc/csharp/1193262.html
编程之家收集整理的这篇文章主要介绍了C++中动态内存分配与命名空间介绍,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
本篇文章给大家带来的内容是介绍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
关键字的初始化: