定义于头文件 <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 \n", 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 \n", static_cast <void*> ( p2 ) );

  std::free( p2 );

}

std::aligned_alloc的更多相关文章

  1. 【NX二次开发】NX内部函数,libuifw.dll文件中的内部函数

    本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void U ...

  2. C++ std::set

    std::set template < class T, // set::key_type/value_type class Compare = less<T>, // set::k ...

  3. C++ std::priority_queue

    std::priority_queue template <class T, class Container = vector<T>, class Compare = less< ...

  4. C++ std::queue

    std::queue template <class T, class Container = deque<T> > class queue; FIFO queue queue ...

  5. C++ std::multimap

    std::multimap template < class Key, // multimap::key_type class T, // multimap::mapped_type class ...

  6. C++ std::map

    std::map template < class Key, // map::key_type class T, // map::mapped_type class Compare = less ...

  7. C++ std::list

    std::list template < class T, class Alloc = allocator > class list; List Lists are sequence co ...

  8. C++ std::forward_list

    std::forward_list template < class T, class Alloc = allocator > class forward_list; Forward li ...

  9. C++ std::deque

    std::deque template < class T, class Alloc = allocator > class deque; Double ended queue deque ...

  10. C++ std::array

    std::array template < class T, size_t N > class array; Code Example #include <iostream> ...

随机推荐

  1. 重磅!Apache Hudi联合传智教育推出免费中文视频教程

    基础介绍 Apache Hudi(简称:Hudi)使得您能在hadoop兼容的存储之上存储大量数据,同时它还提供两种原语,使得除了经典的批处理之外,还可以在数据湖上进行流处理.这两种原语分别是: Up ...

  2. 3d基础 - 从模型坐标到屏幕坐标

    在 3D 引擎中,场景通常被描述为三维空间中的模型或对象,每个模型对象由许多三维顶点组成.最终,这些模型对象将在平面屏幕上呈现和显示. 渲染场景始终相对于摄像机,因此,还必须相对于摄像机的视图定义场景 ...

  3. Python集合常用操作

    一.集合的介绍   1.定义:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重.   2.特性:集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无须纠结于集合中的 ...

  4. Python 3.11.官方文档

    索引 模块 | Python » English Spanish French Japanese Korean Brazilian Portuguese Simplified Chinese Trad ...

  5. 0002 嵌入式开发带你从小白到大佬系列之——Linux文件系统、常用文件操作命令(一)及用户权限

    1.熟悉Linux的文件系统结构 Linux的文件系统结构其实是一个树形的分层组织结构,如下图: Linux系统目录结构及目录路径: 1.1.文件系统层次结构标准 Linux是开源的操作系统,各个Li ...

  6. 一个基于Java线程池管理的开源框架Hippo4j实践

    @ 目录 概述 定义 线程池痛点 功能 框架概览 架构 部署 Docker安装 二进制安装 运行模式 依赖配置中心 接入流程 个性化配置 线程池监控 无中间件依赖 接入流程 服务端配置 三方框架线程池 ...

  7. cocos2dx返回Android游戏黑屏解决办法

    用来解决返回Android游戏加载资源时黑屏的问题.帖子过些日子估计就沉了,所以转出来,以供后面查询. 需要修改三个文件: 1) cocos2dx/platform/CCPlatformMacros. ...

  8. (一)pyahocorasick和marisa_trie,字符串快速查找的python包,自然语言处理,命名实体识别可用的高效包

    Pyahocorasick Pyahocorasick是一个基于AC自动机算法的字符串匹配工具.它可以用于快速查找多个短字符串在一个长字符串中的所有出现位置.Pyahocorasick可以在构建状态机 ...

  9. Linux grep命令详细教程

    [本文出自天外归云的博客园] 简介 Linux grep命令是一种非常常用的文本搜索工具,它可以在给定的文件中搜索匹配的字符串,并输出匹配的行.grep是全称"global search r ...

  10. GPT4free安装部署教程 - 白嫖GPT

    前言 为啥之前一直没有更新GPT相关的内容,因为个人觉得如果每次都需要使用付费使用API的话,那这个工具还是很难在个人手上被运用起来,多测试几次关键字和清洗数据,API的费用对个人来说都太高昂了 直到 ...