¿Cómo se asigna la memoria que está alineada con un límite específico en C (por ejemplo, el límite de la línea de caché)? Estoy buscando una implementación malloc/free que idealmente sea lo más portátil posible, al menos entre arquitecturas de 32 y 64 bits.Cómo asignar y memoria alineada libre en C
Editar para agregar: En otras palabras, estoy buscando algo que se comportara como (¿la ahora obsoleta?) memalign función, que se puede liberar con el uso gratuito.
¿Ha comprobado estas dos respuestas en SO: http://stackoverflow.com/questions/227897/solve-the-memory-alignment-in-c-interview-question-that-stumped-me/227900#227900 y http://stackoverflow.com/questions/1855896/memory-alignment-on-modern-processors? –
No es exactamente lo que estoy buscando. Me gustaría algo que funciona más como malloc, devuelve un valor que es el puntero alineado, y luego tiene otra función similar a libre, que se llama en ese puntero. La aplicación de una solución como las que usted señala requiere pasar dos valores o volver a calcular la alineación cuando sea necesario. Estoy buscando algo similar a memalign. Gracias por señalar esas respuestas. – fuad
Hay 'posix_memalign()' en las máquinas apropiadas - tiene una interfaz diferente de 'memalign()'. –