C++:指向特定大小的物体的“合适对齐”是什么?

c++: what is "suitable alignment" to point to an object of a particular size?

提问人:matthias_buehlmann 提问时间:9/6/2020 更新时间:9/6/2020 访问量:32

问:

操作员的文档新

需要此函数才能返回适当对齐的指针,以指向所请求大小的对象。

合适对齐的定义是什么?返回特定尺寸的合适对齐方式吗?std::malloc

C++ malloc 新运算符

评论


答:

1赞 Pete Becker 9/6/2020 #1

“合适的对齐方式”取决于实施。这取决于目标硬件的对齐要求以及编译器对数据对象的布局方式。因此,两者都与它们使用的编译器密切相关。operator newmalloc

评论

0赞 matthias_buehlmann 9/6/2020
但是,这是否意味着,当全局替换运算符 new 时,如果使用 malloc 实现它,则可以期望满足此要求?
0赞 MaximV 9/6/2020
@user1282931 是的,只要您不混合使用 new(带 delete)和 malloc(带 free),因为它们使用不同的内部数据结构。
0赞 Pete Becker 9/6/2020
@MaximV — 只要你确保只有你从中获取的指针和你从中获取的指针才能同时使用这两种方案。freemallocdeleteoperator new
0赞 MaximV 9/6/2020
@PeteBecker 是的,完全正确,我个人更喜欢使用 and,因为您可以重载它们来跟踪内存分配,但两者都完全适用于在堆上分配内存。newdelete