Android gcc/g+中的动态数组对齐+;
我计划使用应用于int16_t数组元素的SSE指令。有没有办法强制16字节与新运算符或uique_ptr语义对齐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 *array=new int16_t[N];
唯一的可能是使用posix_memalign?我假设使用
int16_t *array __attribute__ ((aligned (16)));
将只对齐指针本身。请参阅:。@PeterCordes:我认为这不适用于
new
,它通常调用malloc
,并返回内存,无论平台的对齐要求是什么(通常为16字节,但可能只有8字节)。请看我上面评论中的链接问题。@PaulR:谢谢,看起来你是对的。我记错了,可能是把它与静态/局部对齐情况混淆了,在这种情况下,使用\uuum128i
技巧的联合是有效的。Wojciech:yesposix_memalign
是一个不错的选择,因为它返回一个指针,该指针保证可以通过free()
释放。来自\u mm\u malloc
的指针不保证与free()
一起使用。如果您想确保这项工作正常,最好也检查一下操作员删除。