设为首页 加入收藏

TOP

brk和sbrk .(二)
2014-11-23 22:53:49 来源: 作者: 【 】 浏览:5
Tags:brk sbrk
些元素将保证会被初始化为零;如果你是为指针类型的元素分配内存,那么这些元素通常(但无法保证)会被初始化为空指针;如果你是为实数类型的元素分配内存,那么这些元素可能(只在某些计算机中)会被初始化为浮点型的零。

malloc() 函数和calloc()函数的另一点区别是calloc()函数会返回一个由某种对象组成的数组,但malloc()函数只返回一个对象。为了明确是为一个数组分配内存空间,有些程序员会选用calloc()函数。但是,除了是否初始化所分配的内存空间这一点之外,绝大多数程序员认 为以下两种函数调用方式没有区别:

calloc(numElements ,sizeOfElement);

malloc(numElements *sizeOfElement) ;

需要解释的一点是,理论上(按照ANSIC标准)指针的算术运算只能在一个指定的数组中进行,但是在实践中,即使C编译程序或翻译器遵循这种规定,许多C 程序还是冲破了这种限制。因此,尽管malloc()函数并不能返回一个数组,它所分配的内存空间仍然能供一个数组使用(对realloc()函数来说同样如此,尽管它也不能返回一个数组)。

总之,当你在calloc()函数和malloc()函数之间作选择时,你只需考虑是否要初始化所分配的内存空间,而不用考虑函数是否能返回一个数组。

当程序运行过程中malloc了,但是没有free的话,会造成内存泄漏.一部分的内存没有

被使用,但是由于没有free,因此系统认为这部分内存还在使用,造成不断的向系统申请内

存,是的系统可用内存不断减少.但是,内存泄漏仅仅指程序在运行时,程序退出时,OS将回

收所有的资源.因此,适当的重起一下程序,有时候还是有点作用.

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Bone Collector 下一篇 C语言二叉树的建立,遍历(递归..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: