Как вы распределяете память, которая выровнена с определенной границей в C (например, граница строки кэша)? Я ищу malloc/бесплатную реализацию, которая в идеале была бы максимально переносимой, по крайней мере, между 32 и 64-битными архитектурами.Как выделить и освободить выровненную память в C
Редактировать добавить: Другими словами, я ищу что-то, что будет вести себя как (теперь устаревшее?) memalign функция, которую можно освободить, используя бесплатно.
Вы проверили эти два ответа на SO: http://stackoverflow.com/questions/227897/solve-the-memory-alignment-in-c-interview-question-that-stumped-me/227900#227900 и http://stackoverflow.com/questions/1855896/memory-alignment-on-modern-processors? –
Не совсем то, что я ищу. Я хотел бы что-то, что больше похоже на malloc, возвращает одно значение, которое является выровненным указателем, а затем имеет другую функцию, похожую на free, вызываемую этим указателем. Применение такого решения, как те, которые вы указали, требует либо прохождения двух значений, либо пересчета выравнивания всякий раз, когда это необходимо. Я ищу что-то похожее на memalign. Спасибо, что указали на эти ответы. – fuad
Существует 'posix_memalign()' на соответствующих машинах - имеет другой интерфейс из 'memalign()'. –