0

なぜmalloc + memsetがcallocより遅いのですか

malloc+は、特定の条件下memsetよりも遅くなります。calloc

デフォルトの割り当てをゼロでオーバーライドするために、追加の引数 ( など) をcalloc使用できるように記述されていないのはなぜですか? それが行われた場合、それはどのような効果があったでしょうか?valuememset

4

2 に答える 2

2

これらcallocまたはmemset初期化はバイト レベルで動作するためmemset、値が異なる場合でもそれほど0有用ではありません。少なくとも、異なる値で使用したことを覚えていません。ほとんどの場合、より幅の広い基本型にメモリを割り当てますchar

もう1つの側面は、calloc割り当てではなく初期化であることです。プラットフォームには、 へのすべてのバイトの高速初期化を提供するビルトインがある場合があり0ます。

しかし、おそらく最も重要な点は、これが C の歴史であるということです。これらのインターフェイスは最初から存在し、変更することはできません。

于 2013-05-14T06:58:03.167 に答える