汉扬编程 C语言入门 c语言malloc与free使用?

c语言malloc与free使用?

  malloc与freeC++/C语言标准库函数new/deleteC++运算符们都用于申请动态内存和释放内存对于非内部数据类型对象而言光用maloc/free无法满足动态对象要求对象创建同时要自动执行构造函数对象消亡之前要自动执行析构函数由于malloc/free库函数而运算符编译器控制权限之内能够把执行构造函数和析构函数任务强加于malloc/free 因此C++语言需要能完成动态内存分配和初始化工作运算符new及能完成清理与释放内存工作运算符delete注意new/delete库函数类Obj函数Initialize模拟了构造函数功能函数Destroy模拟了析构函数功能函数UseMallocFree由于malloc/free能执行构造函数与析构函数必须调用成员函数Initialize和Destroy来完成初始化与清除工作函数UseNewDelete则简单得多所我们要企图用malloc/free来完成动态对象内存管理应该用new/delete由于内部数据类型对象没有构造与析构过程对们而言malloc/free和new/delete等价 既new/delete功能完全覆盖了malloc/freeC++把malloc/free淘汰出局呢因C++程序经常要调用C函数而C程序只能用malloc/free管理动态内存用free释放new创建动态对象该对象因无法执行析构函数而能导致程序出错用delete释放malloc申请动态内存理论上讲程序会出错该程序读性差所new/delete必须配对使用malloc/free也样。
  

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6339.html

243690100四个数中

LinuxC简谈之结构体的内存对齐和位域的存储

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部