2010-07-22 6 views

Antwort

4

Beantwortet Ihre Frage nicht direkt, aber ich denke, Sie sollten _aligned_malloc verwenden. Wenn mein Verständnis korrekt ist, ist _mm_malloc für Intel-Compiler.

+0

'_mm_malloc' wird von gcc unterstützt,' _aligned_malloc' nicht. Der Microsoft-Compiler scheint es ebenfalls zu unterstützen, aber ich kann keine offizielle Veröffentlichung darüber finden. –

+0

Es scheint, nicht offiziell unterstützt zu werden, die msvc "Implementierung" ist nur '#define_mm_malloc (a, b) _aligned_malloc (a, b)' so ist es ziemlich nur eine Frage von, ob Sie darauf verlassen möchten, dass MS das nicht ändert (Eine ziemlich gute Annahme ist, dass sie das behalten), oder eine ähnliche Definition bereitstellen, wenn Sie für Windows kompilieren. – nos

+0

Es sollte angemerkt werden, dass '_aligned_alloc' ** NICHT ** das C11/C++ 11' aligned_alloc' ist: Die Parameter sind invertiert und '_aligned_alloc' ist nicht kompatibel mit' free'. – diapir

0

Hat memalign nicht() in <malloc.h> dieses Problem lösen? Die Manpage sagt, es ist veraltet, aber ...

1

_mm_malloc/_mm_free unterstützt in Visual Studio 2013 mit der <malloc.h> Header.

+1

"den Header verwenden" - welcher Header? – Robinson

+0

@Robinson Der in der Frage: '' –