zoukankan      html  css  js  c++  java
  • std::aligned_alloc

    定义于头文件 <cstdlib> (c++)

    void * aligned_alloc ( std::size_t alignment, std::size_t size); (c++17) 

    分配 size 字节的未初始化存储, 由alignment指定其对齐。 size 参数必须是alignment 的整数倍。

    参数: 

      alignment - 指定对, 必须是实现支持的合法对齐。

      size - 分配的字节数, alignment的整数倍。

    返回值:

      成功时,返回指向新分配内存起始的指针。为了避免内存泄露,返回的指针必须由std::free或std::realloc 解分配。

      失败时,返回空指针。

    注意:

      传递不是alignment 的整数倍的size 或不受实现支持或非法alignment 导致函数失败并返回空指针。

      作为实现支持 要求的例子,POSIX函数posix_memalign 接受任何是2的幂且为sizeof(void*) 倍数的alignment, 而基于POSIX的alignmed_alloc 实现继承此要求。

      常规的std::malloc 分配适用于任何对象的大小的内存,此函数适用于对齐分配,例如对SSE, 缓存线或VM页边界。

    #include <cstdio>

    #include <cstdlib>

    int main() {

      int * p1 = static_cast < int* > ( std::malloc ( 10 * sizeof *p1 ) );

      std::printf ( "default-aligned address: %p ", static_cast < void* > ( p1) );

      std::free ( p1 );

      int * p2 = static_cast < int* > ( std::aligned_alloc ( 1024, 10 * sizeof *p2 ) );

      std::prinf ( "1024-byte aligned address : %p ", static_cast <void*> ( p2 ) );

      std::free( p2 );

    }

  • 相关阅读:
    计算机病毒
    wordpress搬家教程
    javascript的DOM学习之选项卡制作
    javascript的DOM学习上
    [转]jQuery 引用地址{包括jquery和google提供的地址}, 节省你不必要的流量
    CSS3属性之:transition
    CSS3属性之:animastion
    css3学习系列之box-shadow(1)
    使ie678支持css3伪类选择器的插件
    个人网站名称填写注意事项
  • 原文地址:https://www.cnblogs.com/Davirain/p/12390411.html
Copyright © 2011-2022 走看看