以前の K&R (第 2 版) および私が読んだ他の C 言語のテキストでは、動的メモリ アロケータの実装について次のように説明されていmalloc()
ますfree()
。どうやら、特定のコンピューター ハードウェア アーキテクチャ (CPU、レジスタ、およびメモリ アクセス) によって、特定の値の型を格納およびアドレス指定する方法が制限されているようです。たとえば、4long
の倍数のアドレスから始まる 4 バイト ( ) の整数を格納する必要がある場合があります。
メジャー プラットフォーム (Intel & AMD、SPARC、Alpha) がメモリ割り当てとメモリ アクセスに課す制限はありますか? または、特定のアドレス境界でのメモリ割り当ての調整を安全に無視できますか?