Come si alloca la memoria allineata a un limite specifico in C (ad esempio, limite della linea cache)? Sto cercando un'implementazione malloc/free che idealmente sarebbe il più portabile possibile - almeno tra le architetture a 32 e 64 bit.Come allocare e liberare memoria allineata in C
Modifica da aggiungere: In altre parole, sto cercando qualcosa che si comporti come (la ormai obsoleta?) Funzione memalign, che può essere liberata utilizzando gratuitamente.
Avete controllato queste due risposte su SO: http://stackoverflow.com/questions/227897/solve-the-memory-alignment-in-c-interview-question-that-stumped-me/227900#227900 e http://stackoverflow.com/questions/1855896/memory-alignment-on-modern-processors? –
Non proprio quello che sto cercando. Vorrei qualcosa che funziona più come malloc, restituisce un valore che è il puntatore allineato, quindi ha un'altra funzione simile a free, che viene chiamata su quel puntatore. L'applicazione di una soluzione come quella che hai indicato richiede il passaggio di due valori o il ricalcolo dell'allineamento ogni volta che è necessario. Sto cercando qualcosa di simile al memalign. Grazie per aver indicato quelle risposte. – fuad
C'è 'posix_memalign()' su macchine appropriate - ha un'interfaccia diversa da 'memalign()'. –