c++内存示例002分配器,假定对齐,对齐分配
Posted 周三石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++内存示例002分配器,假定对齐,对齐分配相关的知识,希望对你有一定的参考价值。
#包含 <内存>
#包含 <io流>
#包含 <串>
整 主()
{
标::分配器<整> a1; // 整 的默认分配器
整* a = a1.分配(1); // 一个 整 的空间
a1.构造(a, 7); // 构造 整
输出 << a[0] << '\n';
a1.回收(a, 1); // 解分配一个 整 的空间
// 串 的默认分配器
标::分配器<串> a2;
// 同上,但以 a1 的重绑定获取
推导(a1)::重绑定<串>::其他 a2_1;
// 同上,但通过 分配器特征 由类型 a1 的重绑定获取
分配器特征<推导(a1)>::重绑定分配<串> a2_2;
串* s = a2.分配(2); // 2 个 串 的空间
a2.构造(s, "福");
a2.构造(s + 1, "条");
输出 << s[0] << ' ' << s[1] << '\n';
a2.消灭(s);
a2.消灭(s + 1);
a2.回收(s, 2);
}
7
福 条
空 f(整* p) {
整* p1 = 标::假定对齐<256>(p);
// 用 p1 而非 p ,以确保从对齐假设受益.
// 然而,若 p 未对齐则程序有未定义行为,无关乎是否使用 p1 .
}
#包含 <c标io>
#包含 <c标准库>
整 主()
{
整* p1 = 静转<整*>(分配(10*的大小 *p1));
打印格式("默认-对齐 地址: %p\n", 静转<空*>(p1));
释放(p1);
整* p2 = 静转<整*>(标::对齐分配(1024, 10*的大小 *p2));
打印格式("1024-字节 对齐 地址: %p\n", 静转<空*>(p2));
释放(p2);
}
默认-对齐 地址: 0x2221c20
1024-字节 对齐 地址: 0x2222400
以上是关于c++内存示例002分配器,假定对齐,对齐分配的主要内容,如果未能解决你的问题,请参考以下文章