gpt4 book ai didi

c++ - 如何在 C++ 中创建对齐的整数数组?

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:45 28 4
gpt4 key购买 nike

我当前的代码是:

a = new int[10];

并且 a 的地址是 0x...040 我希望它是 4096 字节对齐的所以我试图将它更改为:

a = new __declspec(align(4096)) int[10];

但这仍然不起作用(地址仍然以 040 而不是 000 结尾。我做错了什么?

最佳答案

__declspec(align(...)) 可用于静态数组,如:

__declspec(align(4096)) int a[10];

动态分配使用_aligned_malloc函数,使用_aligned_free释放_aligned_malloc分配的数组:

int* a = (int*) _aligned_malloc(10 * sizeof(int), 4096);
...
_aligned_free(a);

必需的包含是 malloc.h

关于c++ - 如何在 C++ 中创建对齐的整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19119245/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com