私はmallocを使い慣れていて、mallocを整列しています。私はそれらを使う方法を知っています。しかし、私は、標準のmallocの代わりに整列したmallocを使うべきかどうかを正確にはわかりません。私に説明してもらえますか?皆さん、ありがとうございました。整列したmallocと標準のmallocの違いは?
0
A
答えて
1
glibc
documentationは、それが合理的に明確にあなたがaligned_alloc
を使用する必要があります:
GNUシステムで
malloc
またはrealloc
によって返されたブロックのアドレスは常に(64ビットシステム上または16)8の倍数であります。アドレスが2より大きい倍数のブロックを必要とする場合は、aligned_alloc
またはposix_memalign
を使用してください。
malloc
は、標準タイプのいずれに対しても適切に位置合わせされたメモリブロックを返すことをすでに保証していますが、より厳格なアライメントが必要な状況があるかもしれません。
SSE2(SIMD)命令のデータが16バイト境界で整列されている必要があるので、は8バイトの境界線のみを保証するシステムでもaligned_alloc
を使用すると、 。
関連する問題
- 1. mallocとdlmallocの相違点
- 2. mallocポインタを調整する
- 3. C++の "new"と "malloc"と "calloc"の違いは何ですか?
- 4. のmallocメモリは
- 5. ポインタアドレスはmallocの
- 6. ガードmallocのは
- 7. 失敗したmalloc()のユニットテスト
- 8. mallocとポインタコードのデモンストレーション
- 9. 配列型とmallocで割り付けられた配列の相違
- 10. 配列へのmallocポインタ
- 11. C mallocとfree
- 12. mallocとボイドポインタ
- 13. mallocとMarshal.AllocHGlobalとの間に違いがありますか?
- 14. 構造体の配列とmalloc [C]
- 15. ETSI-M2M標準とOneM2M標準の違いは何ですか?
- 16. 何がしますか:malloc(10)とmalloc(10 * sizeof(int))
- 17. "malloc(sizeof(struct a *))"と "malloc(sizeof(struct a))"は同じですか?
- 18. 何がmallocと割り当ての違い
- 19. はmallocのラッパーとしてdlsymを
- 20. のmallocエラー(C)
- 21. mallocのメモリリーク
- 22. mallocのセグメンテーションフォルト:
- 23. のmalloc C
- 24. malloc-ed配列と非malloc配列のサイズが異なるのはなぜですか?
- 25. mallocさメモリとSIGSEGV
- 26. mallocチェックポイント
- 27. ビットマップとMallocを使用したセグメンテーションフォルト
- 28. ポインタ、構造体とのmalloc()
- 29. フリーとmallocのVisual C++スレッドセーフ?
- 30. mallocとフリーラッパーの使用
言語?私はCと仮定しますが、他の環境の詳細(OS、言語実装など)も提供する必要があります。標準Cには 'malloc'のみがあり、すべての標準データ型に対して正しく整列されていることが保証されています。 – paxdiablo
私はUbuntuでC11標準で使用しています – blackcafe
タグとして追加しました。必要に応じて確認および/または変更してください。 – paxdiablo