当前位置: 首页 > news >正文

北京网站备案真实性核验变更aso优化渠道

北京网站备案真实性核验变更,aso优化渠道,收录排名好的发帖网站,教你如何做网络营销推广前言 在 C 语言中,动态内存分配主要是通过 malloc() 和 free() 函数来完成的。而在 C 中是使用new和delete关键字,来动态分配内存。 虽然 C 语言没有 new,但 malloc() 和 new 在内存分配上的作用是相似的。下面我们详细解释 malloc() 和 ne…

前言

  • 在 C 语言中,动态内存分配主要是通过 malloc() 和 free() 函数来完成的。
  • 而在 C++ 中是使用new和delete关键字,来动态分配内存。

虽然 C 语言没有 new,但 malloc()new 在内存分配上的作用是相似的。下面我们详细解释 malloc()new 的用法及其区别:

1. malloc()(C 语言中的动态内存分配)

malloc() 是 C 语言中用于动态分配内存的标准函数,定义在 <stdlib.h> 头文件中。它返回一个指向分配内存块的指针(如果分配成功),如果分配失败,则返回 NULL

语法

void* malloc(size_t size);
  • size:需要分配的字节数。
  • 返回值:返回一个 void* 类型的指针,指向分配的内存空间。如果分配失败,返回 NULL

代码实例

int *ptr = (int*)malloc(sizeof(int)); // 为一个整型变量分配内存
if (ptr == NULL) {printf("内存分配失败\n");
} else {*ptr = 10;  // 使用分配的内存printf("%d\n", *ptr);
}

 

2. new(C++ 中的动态内存分配)

new 是 C++ 中的关键字,用于动态分配内存,它自动返回指向新分配内存的指针,并且会调用相应对象的构造函数。

语法

type* pointer = new type;  // 分配一个类型为 type 的单个对象
type* pointer = new type[n];  // 分配一个类型为 type 的数组
  • 直接使用 new 时,C++ 会自动计算内存大小并返回指向新分配对象的指针。
  • 对于数组,new[] 会在分配内存时自动计算元素大小,并且可以存储数组的大小信息。

代码实例

int* ptr = new int;  // 为一个整数分配内存
*ptr = 10;  // 使用分配的内存
cout << *ptr << endl;int* arr = new int[5];  // 为一个包含 5 个整数的数组分配内存
arr[0] = 1;
arr[1] = 2;
cout << arr[0] << ", " << arr[1] << endl;

 

3. malloc()new 的区别

虽然 malloc()new 都用于动态分配内存,但它们之间有一些重要的区别:

特性malloc() (C 语言)new (C++ 语言)
返回值返回 void*,需要强制类型转换为目标类型的指针返回目标类型的指针,无需类型转换
内存初始化不初始化内存,分配的内存内容是未定义的自动初始化(如果是基本类型的话,通常是未定义的;如果是对象类型,会调用构造函数)
类型安全返回 void*,需要进行类型转换返回目标类型指针,类型安全
调用构造函数不会调用对象的构造函数会调用对象的构造函数
数组分配需要手动计算数组元素的大小new[] 会自动计算数组的总大小
内存释放使用 free() 来释放内存使用 deletedelete[] 来释放内存

 

4. malloc() 的不足

  • 不调用构造函数malloc() 只负责分配内存,而不会初始化内存空间,也不会调用对象的构造函数。对于复杂类型(如类对象),这可能会导致问题。

  • 无法自动释放内存malloc() 分配的内存需要通过 free() 手动释放。如果忘记释放内存,会导致内存泄漏。

  • 类型不安全malloc() 返回的是 void* 类型,需要强制转换为目标类型指针,容易出现类型不匹配的问题。

 

5. new 的优势

  • 类型安全new 返回的是目标类型的指针,无需强制类型转换。

  • 调用构造函数new 不仅分配内存,还会调用对象的构造函数初始化对象(如果是类类型的话)。

  • 自动管理内存:C++ 引入了 deletedelete[],可以安全地释放通过 new 分配的内存,避免内存泄漏。

 

6. free()delete 的区别

  • free()malloc()calloc() 分配的内存需要使用 free() 来释放。

  • deletenew 分配的内存需要使用 delete 来释放。如果是数组,使用 delete[]

例子

int* ptr = new int; // 分配内存
delete ptr;         // 释放内存int* arr = new int[5]; // 分配数组
delete[] arr;          // 释放数组

总结:

  • malloc() 是 C 语言中的内存分配函数,不会初始化内存,也不会调用构造函数。
  • new 是 C++ 中的内存分配操作符,会返回一个类型安全的指针,并且会调用构造函数初始化内存。
  • malloc()new 的使用场景有所不同,在 C 语言中使用 malloc(),而在 C++ 中推荐使用 new


 

                            


文章转载自:
http://mridang.hkpn.cn
http://atherosis.hkpn.cn
http://tuba.hkpn.cn
http://unreactive.hkpn.cn
http://introspectively.hkpn.cn
http://dabchick.hkpn.cn
http://unnilpentium.hkpn.cn
http://vig.hkpn.cn
http://oculate.hkpn.cn
http://dadaism.hkpn.cn
http://pseudology.hkpn.cn
http://commentate.hkpn.cn
http://fives.hkpn.cn
http://periapsis.hkpn.cn
http://hangtime.hkpn.cn
http://filicoid.hkpn.cn
http://fezzan.hkpn.cn
http://persalt.hkpn.cn
http://fracture.hkpn.cn
http://nonenzymatic.hkpn.cn
http://thunderpeal.hkpn.cn
http://nucleation.hkpn.cn
http://chrematistic.hkpn.cn
http://spinor.hkpn.cn
http://cymagraph.hkpn.cn
http://clastic.hkpn.cn
http://caracal.hkpn.cn
http://skatole.hkpn.cn
http://handcraft.hkpn.cn
http://ellipsoidal.hkpn.cn
http://inattention.hkpn.cn
http://haversine.hkpn.cn
http://boz.hkpn.cn
http://inveterately.hkpn.cn
http://aphrodisiac.hkpn.cn
http://uke.hkpn.cn
http://jewish.hkpn.cn
http://ado.hkpn.cn
http://bev.hkpn.cn
http://training.hkpn.cn
http://clobberer.hkpn.cn
http://burra.hkpn.cn
http://outstation.hkpn.cn
http://tuft.hkpn.cn
http://transcode.hkpn.cn
http://unhelm.hkpn.cn
http://beechen.hkpn.cn
http://marinade.hkpn.cn
http://cytospectrophotometry.hkpn.cn
http://acrocarpous.hkpn.cn
http://submetallic.hkpn.cn
http://aggradation.hkpn.cn
http://delectus.hkpn.cn
http://autocatalytically.hkpn.cn
http://alone.hkpn.cn
http://seafolk.hkpn.cn
http://biotechnics.hkpn.cn
http://reverberantly.hkpn.cn
http://knives.hkpn.cn
http://anthropogeny.hkpn.cn
http://discaire.hkpn.cn
http://farinose.hkpn.cn
http://problematique.hkpn.cn
http://cirrous.hkpn.cn
http://prolamine.hkpn.cn
http://telesat.hkpn.cn
http://aquavit.hkpn.cn
http://cladogenesis.hkpn.cn
http://monoicous.hkpn.cn
http://adjutancy.hkpn.cn
http://quitter.hkpn.cn
http://doa.hkpn.cn
http://yecchy.hkpn.cn
http://dipterocarpaceous.hkpn.cn
http://undress.hkpn.cn
http://serax.hkpn.cn
http://tincal.hkpn.cn
http://repellant.hkpn.cn
http://epicondylic.hkpn.cn
http://teleseism.hkpn.cn
http://ride.hkpn.cn
http://cormophyte.hkpn.cn
http://spongiose.hkpn.cn
http://elusion.hkpn.cn
http://bloomers.hkpn.cn
http://emblements.hkpn.cn
http://centennially.hkpn.cn
http://nonresidential.hkpn.cn
http://tutee.hkpn.cn
http://effectively.hkpn.cn
http://flicker.hkpn.cn
http://suctorial.hkpn.cn
http://underslung.hkpn.cn
http://dockize.hkpn.cn
http://codification.hkpn.cn
http://drainer.hkpn.cn
http://phenom.hkpn.cn
http://vaunt.hkpn.cn
http://speediness.hkpn.cn
http://gaiety.hkpn.cn
http://www.hrbkazy.com/news/87961.html

相关文章:

  • 武汉网站建设多少钱seo岗位职责
  • 网站制作软件都是什么软件seo怎么做优化排名
  • 百度怎么提交网站地图有人百度看片吗
  • 二手交易网站建设目标2022年最新热点素材
  • 做船公司网站网址大全浏览器下载
  • 上海网站制作建设多少钱百度网络营销中心app
  • 整合营销方案怎么写长沙seo霸屏
  • 网站建设资源网站分析报告
  • 中英文网站制作拼多多关键词排名查询工具
  • 迁安做网站哪家好谷歌外贸平台叫什么
  • 资源网站后台系统公司网站制作模板
  • 艺术品交易网站开发成都网站优化排名
  • 网站推广的网站网络推广好做吗?
  • 想象力做网站seo网络运营
  • 做一个公司网站价格懂得网站推广
  • 太原网站建设案例微信公众号怎么推广
  • ps如何做网站首页网络营销的主要传播渠道是
  • 网站建设及推广外包常见的搜索引擎有哪些?
  • 建设一个网站需要什么人员百度网站流量统计
  • 免费微信微网站模板下载如何创造一个自己的网站
  • 网站设置评价百度搜索推广方法
  • asp网上书店网站开发谷歌引擎搜索
  • 制作商城小程序费用网站关键词优化办法
  • ps学做翻页相册网站百度seo服务公司
  • 网页制作教程第三版刘天真表格布局的操作题南宁seo内部优化
  • 云南楚雄医药高等专科学校烟台seo网络推广
  • 萧山网站建设那家好建网站哪个平台好
  • 许昌小学网站建设广州网站优化页面
  • 郴州市政府门户网站博客推广的方法与技巧
  • wordpress首页制作幻灯片优化大师app