易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++中malloc和new的区别


  1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。
  2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free.
  3,因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete.注意new/delete不是库函数。
  4,C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存
  new 是个操作符,和什么"+","-","="……有一样的地位。
  malloc是个分配内存的函数,供你调用的。
  new是保留字,不需要头文件支持。
  malloc需要头文件库函数支持。
  new 建立的是一个对象,
  malloc分配的是一块内存。
  new建立的对象你可以把它当成一个普通的对象,用成员函数访问,不要直接访问它的地址空间
  malloc分配的是一块内存区域,就用指针访问好了,而且还可以在里面移动指针。
  简而言之:
  new 是一个操作符,可以重载
  malloc是一个函数,可以覆盖
  new 初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数
  malloc仅仅分配内存,free仅仅回收内存
转自:http://tech.ddvip.com/2009-05/1242201392118933.html


相关文档:

C/C++ 日期 时间 time_t与struct tm转换

本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),cl ......

用C语言扩展Python的功能


原文
Python和C分别有着各自的优缺点,用Python开发程序速度快,可靠性高,并且有许多现成模块可供使用,但执行速度相对较慢;C语言则正好相反,其执行速度快,但开发效率低。为了充分利用两种语言各自的优点,比较好的做法是用Python开发整个软件框架,而用C语言实现其关键模块。本文介绍如何利用C语言来扩展Python的功 ......

标准C函数之 getchar

getchar函数是定义在 stdio.h 文件中的一个输入函数。它从标准输入设备(一般是键盘)中读取一个字符。
在实际工作中,它是这样完成的:
键盘输入到计算机中的字符并不是立刻送到内存中指定位置,而是会首先缓存到一个缓冲区中。这个是计算机为了弥补不同硬件之间速度差距,而惯用的伎俩。
当在程序中第一次调用 getchar ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号