2010-07-22 10 views

risposta

4

Non risponde alla domanda direttamente, ma penso che si supponga di utilizzare _aligned_malloc. Se la mia comprensione è corretta, _mm_malloc è per i compilatori Intel.

+0

'_mm_malloc' è supportato da gcc e' _aligned_malloc' non lo è. Anche il compilatore Microsoft sembra supportarlo, ma non riesco a trovare alcun documento ufficiale a riguardo. –

+0

Sembra non essere ufficialmente supportato, la "implementazione" di msvc è semplicemente '#define _mm_malloc (a, b) _aligned_malloc (a, b)' quindi è praticamente solo una questione di voler fare affidamento su MS non cambiando quella (un buon presupposto è che lo terranno in giro), o fornire una definizione simile quando si sta compilando per Windows. – nos

+0

Si noti che '_aligned_alloc' è ** NOT ** il C11/C++ 11' aligned_alloc': i parametri sono invertiti e '_aligned_alloc' non è compatibile con' free'. – diapir

0

Vuol non memalign() in <malloc.h> risolvere questo problema? La pagina man dice che è obsoleto, ma ...

1

_mm_malloc/_mm_free supportato in Visual Studio 2013 con l'utilizzo dell'intestazione <malloc.h>.

+1

"using the header" - quale intestazione? – Robinson

+0

@Robinson Quello nella domanda: '' –