C の新しい演算子によるメモリの初期化
C では、新しい演算子は動的にメモリを割り当てます。初心者は、手動ループに頼ることなく、割り当てられたメモリを効率的に初期化するという課題に直面することがよくあります。この質問では、このタスクを達成する最適な方法を検討します。
Memset と C 構文
1 つのオプションは、メモリのブロックを次のように設定する関数 memset を使用することです。指定された値。ただし、C では、値の初期化のためのより洗練されたソリューションが提供されています。
new int[10]();
この構文は、10 個の要素を含む int 型の配列を初期化し、すべて 0 に設定します。特別な構文 () を利用して value- を通知します。
ISO C 標準
ISO C 03 標準では、セクション 5.3.4[expr.new]/15 でこの動作を明示的に許可しています。これは、() 形式の初期化子を持つ new-expression が値初期化子でオブジェクトを初期化することを示しています (8.5)。これには、制限のない配列が含まれます。
利点
この構文は、特に大きな配列の場合、初期化を簡素化します。また、値の適切な初期化も保証されます。これは、正確性と未定義の動作の回避にとって重要です。結果として、 new で割り当てられたメモリを初期化する「C」の方法として推奨されます。
以上がC の「new」演算子で割り当てられたメモリを効率的に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。