郑州建设网站的公司,湖南企业做网站,discuz二次开发,装修公司起名以下内容源于C语言中文网的学习与整理#xff0c;非原创#xff0c;如有侵权请告知删除。 在C语言中#xff0c;动态地分配内存用 malloc() 函数#xff0c;释放内存用 free() 函数。如下所示#xff1a;
int* p(int*)malloc(sizeof(int)*10);//分配10个int型的内存空间f…以下内容源于C语言中文网的学习与整理非原创如有侵权请告知删除。 在C语言中动态地分配内存用 malloc() 函数释放内存用 free() 函数。如下所示
int* p(int*)malloc(sizeof(int)*10);//分配10个int型的内存空间free(p);//释放内存
在C中这两个函数仍然可以使用但是C新增了两个关键字new 和 delete。
其中 new 用来动态分配内存delete 用来释放内存。
如下所示new 操作符会根据后面的数据类型来推断所需空间的大小。
int* pnew int;//分配1个int型的内存空间delete p;//释放内存
如果希望分配一组连续的数据可以使用 new[]并用 delete[] 释放如下所示
int* p new int[10]; //分配10个int型的内存空间delete[] p;
和 malloc() 一样new 也是在堆区分配内存必须手动释放否则只能等到程序运行结束由操作系统回收。为了避免内存泄露通常 new 和 delete、new[] 和 delete[] 操作符应该成对出现并且不要和C语言中 malloc()、free() 一起混用。
在C中建议使用 new 和 delete 来管理内存它们可以使用C的一些新特性最明显的是可以自动调用构造函数和析构函数。