タグ付けされた質問 「memset」

9
memsetでbzeroを使用する理由
私はこの前学期に受けたシステムプログラミングクラスで、基本的なクライアント/サーバーをCで実装する必要がありました。などの構造体sock_addr_inや文字バッファー(クライアントとサーバー間でデータを送受信するために使用)を初期化するときにそれらを使用するだけで初期化しbzeroないように指示しmemsetました。彼はなぜその理由を説明したことがなく、これに正当な理由があるかどうか私は知りたいですか? 私はここを参照してください:http : //fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdownこれbzeroはメモリをゼロにするだけなので、より効率的であるため、実行されるmemset可能性がある追加のチェックを実行する必要があります。それでも、memsetメモリのゼロ化に絶対に使用しない理由とは限りません。 bzeroは非推奨と見なされ、さらに標準のC関数ではありません。マニュアルによると、この理由のためにmemset推奨されbzeroます。では、なぜそれbzero以上に使いたいのでしょうmemsetか?効率を上げるためだけですか、それともそれ以上ですか?同様に、それが新しいプログラムにとって事実上好ましいオプションになっmemsetてbzeroいることの利点は何ですか?

7
C int配列をゼロにリセット:最速の方法?
T myarray[100]with T = int、unsigned int、long long intまたはunsigned long long int があると仮定すると、すべてのコンテンツをゼロにリセットする最も速い方法は何ですか(初期化のためだけでなく、プログラムでコンテンツを数回リセットするため) ?多分memsetで? のような動的配列についても同じ質問ですT *myarray = new T[100]。
102 c++  c  arrays  memset 

12
Cで2D配列をゼロにする最も速い方法は?
Cで大きな2D配列を繰り返しゼロ化したいのですが、これが現在私がしていることです。 // Array of size n * m, where n may not equal m for(j = 0; j < n; j++) { for(i = 0; i < m; i++) { array[i][j] = 0; } } memsetを使用してみました: memset(array, 0, sizeof(array)) ただし、これは1Dアレイでのみ機能します。2D配列の内容をprintfすると、最初の行はゼロですが、ランダムな大きな数の負荷がかかり、クラッシュします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.