栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++/C动态空间开辟的区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++/C动态空间开辟的区别

  • C中开辟空间:

        malloc()方法,realloc()方法

void *malloc( size_t size );               

//提供需要开辟的空间大小,返回空间位置void*指针

void *realloc( void *memblock, size_t size );       

//提供原空间内存地址,需要的新空间大小,返回新空间位置void*指针

        释放空间:

        free()方法

void free( void *memblock );

//释放一整块内存空间

  • C++中开辟空间:

        new标识符使用:

int* a = new int(3);        

//开辟一个整型空间,并初始化为3

int* arr = new int[10];

//开辟一个整型数组空间,长度为10

        释放空间:

        delete标识符

delete a;

//释放一块变量空间

delete[] arr;

//释放一块数组空间

  • 其区别体现在以下方面
  1. malloc/realloc是一个函数,new是一个标识符/关键字
  2. malloc不能在开辟时初始化,new可以
  3. malloc开辟失败返回NULL,new失败抛出异常
  4. malloc不能开辟常量内存块,new可以
  5. malloc可以指定大小开辟空间,new只能开辟指定数据类型大小空间
  6. malloc返回void*,new返回void
  7. malloc无法重载,new可以
  8. new底层是使用malloc实现的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019707.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号