zoukankan      html  css  js  c++  java
  • memalign的作用【转】

    本文转载自:https://blog.csdn.net/lvwx369/article/details/41726415

    转自:http://hi.baidu.com/narshben/item/ca95ca1bf43d90466926bbf5

     

    ZZ: http://gs5689.blogbus.com/logs/36655475.html 


    在GNU系统中,malloc或realloc返回的内存块地址都是8的倍数(如果是64位系统,则为16的倍数)。如果你需要更大的粒度,请使用memalign或valloc。这些函数在头文件“stdlib.h”中声明。

    在GNU库中,可以使用函数free释放memalign和valloc返回的内存块。但无法在BSD系统中使用,而且BSD系统中并未提供释放这样的内存块的途径。

    函数:void * memalign (size_t boundary, size_t size) 
    函数memalign将分配一个由size指定大小,地址是boundary的倍数的内存块。参数boundary必须是2的幂!函数memalign可以分配较大的内存块,并且可以为返回的地址指定粒度。

    函数:void * valloc (size_t size) 
    使用函数valloc与使用函数memalign类似,函数valloc的内部实现里,使用页的大小作为对齐长度,使用memalign来分配内存。它的实现如下所示: 
    void *
    valloc (size_t size)
    {
    return memalign (getpagesize (), size);
    }
  • 相关阅读:
    牛券
    探险
    雷达安装
    智力大冲浪
    奶牛玩杂技
    BJWC2008 秦腾与教学评估
    JSOI2010 部落划分
    作诗
    ASP.NET MVC4系列验证机制、伙伴类共享源数据信息(数据注解和验证)
    正则表达式
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/10114682.html
Copyright © 2011-2022 走看看