当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>高质量C++/C编程指南-第7章-内存管理(6)</b>[VC/C++编程]

赞助商链接



  本文“<b>高质量C++/C编程指南-第7章-内存管理(6)</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

7.10 malloc/free 的利用要点
函数malloc的原型以下:

void * malloc(size_t size);

用malloc申请一块长度为length的整数范例的内存,程序以下:

int *p = (int *) malloc(sizeof(int) * length);

我们该当把注意力集合在两个要素上:“范例转换”和“sizeof”.

u malloc返回值的范例是void *,所以在调用malloc时要显式地举行范例转换,将void * 转换成所需求的指针范例.

u malloc函数本身并不辨认要申请的内存是什么范例,它只关心内存的总字节数.我们普通记不住int, float等数据范例的变量的切当字节数.比方int变量在16位系统下是2个字节,在32位下是4个字节;而float变量在16位系统下是4个字节,在32位下也是4个字节.最好用以下程序作一次测试:

cout << sizeof(char) << endl;

cout << sizeof(int) << endl;

cout << sizeof(unsigned int) << endl;

cout << sizeof(long) << endl;

cout << sizeof(unsigned long) << endl;

cout << sizeof(float) << endl;

cout << sizeof(double) << endl;

cout << sizeof(void *) << endl;

在malloc的“()”中利用sizeof运算符是杰出的气势,但要当心有时我们会昏了头,写出 p = malloc(sizeof(p))这样的程序来.

u 函数free的原型以下:

void free( void * memblock );

为什么free函数不象malloc函数那样复杂呢?这是因为指针p的范例以及它所指的内存的容量事前都是知道的,语句free(p)能精确地释放内存.假如p是NULL指针,那么free对p无论操作多少次都不会出问题.假如p不是NULL指针,那么free对p持续操作两次就会招致程序运行错误.


  以上是“<b>高质量C++/C编程指南-第7章-内存管理(6)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .