Android gcc/g+中的动态数组对齐+;

Android gcc/g+中的动态数组对齐+;,android,c++11,sse,Android,C++11,Sse,我计划使用应用于int16_t数组元素的SSE指令。有没有办法强制16字节与新运算符或uique_ptr语义对齐 int16_t *array=new int16_t[N]; 唯一的可能是使用posix_memalign?我假设使用 int16_t *array __attribute__ ((aligned (16))); 将只对齐指针本身。请参阅:。@PeterCordes:我认为这不适用于new,它通常调用malloc,并返回内存,无论平台的对齐要求是什么(通常为16字节,但可能只有8

我计划使用应用于int16_t数组元素的SSE指令。有没有办法强制16字节与新运算符或uique_ptr语义对齐

int16_t *array=new int16_t[N];
唯一的可能是使用posix_memalign?我假设使用

int16_t *array __attribute__ ((aligned (16)));

将只对齐指针本身。

请参阅:。@PeterCordes:我认为这不适用于
new
,它通常调用
malloc
,并返回内存,无论平台的对齐要求是什么(通常为16字节,但可能只有8字节)。请看我上面评论中的链接问题。@PaulR:谢谢,看起来你是对的。我记错了,可能是把它与静态/局部对齐情况混淆了,在这种情况下,使用
\uuum128i
技巧的联合是有效的。Wojciech:yes
posix_memalign
是一个不错的选择,因为它返回一个指针,该指针保证可以通过
free()
释放。来自
\u mm\u malloc
的指针不保证与
free()
一起使用。如果您想确保这项工作正常,最好也检查一下
操作员删除