作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我当前的代码是:
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/
我是一名优秀的程序员,十分优秀!