动态内存分配在C语言和C++语言中的不同?
动态内存分配在C语言和C++语言中究竟有何不同?他们都是如何分别用什么系统函数或运算符实现的呢?...
动态内存分配在C语言和C++语言中究竟有何不同?他们都是如何分别用什么系统函数或运算符实现的呢?
展开
1个回答
展开全部
1.动态内存分配在C语言用函数malloc 函数malloc的原型如下: void * malloc(size_t size); 用malloc申请一块长度为length的整数类型的内存,程序如下: int *p = (int *) malloc(sizeof(int) * length); 2.动态内存分配在C++语言用运算符new 运算符new使用起来要比函数malloc简单得多,例如: int *p1 = (int *)malloc(sizeof(int) * length); int *p2 = new int[length]; 这是因为new内置了sizeof、类型转换和类型安全检查功能。对于非内部数据类型的对象而言,new在创建动态对象的同时完成了初始化工作。如果对象有多个构造函数,那么new的语句也可以有多种形式。例如 class Obj { public : Obj(void); // 无参数的构造函数 Obj(int x); // 带一个参数的构造函数 … } void Test(void) { Obj *a = new Obj; Obj *b = new Obj(1); // 初值为1 … delete a; delete b; } 补充:动态分配的内存,用完了要销毁,不然会造成内存泄露。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询