Comment allouer de la mémoire alignée sur une limite spécifique dans C (par exemple, limite de ligne de cache)? Je cherche une implémentation de type malloc/free qui soit idéalement aussi portable que possible --- au moins entre les architectures 32 et 64 bits.Comment allouer et libérer de la mémoire alignée dans C
Modifier pour ajouter: En d'autres termes, je cherche quelque chose qui se comporterait comme (maintenant obsolète?) memalign fonction, qui peut être libérée en utilisant gratuitement.
Avez-vous vérifié ces deux réponses sur 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? –
Pas tout à fait ce que je cherche. Je voudrais quelque chose qui fonctionne plus comme malloc, retourne une valeur qui est le pointeur aligné, alors avoir une autre fonction similaire à free, c'est appelé sur ce pointeur. L'application d'une solution telle que celles que vous avez pointées nécessite soit de passer deux valeurs, soit de recalculer l'alignement chaque fois que cela est nécessaire. Je cherche quelque chose de similaire à memalign. Merci d'avoir signalé ces réponses. – fuad
Il y a 'posix_memalign()' sur les machines appropriées - a une interface différente de 'memalign()'. –