問題タブ [memcpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
4403 参照

c++ - memcpy()がmemmove()よりも速い場合、実際に重要なケースは何ですか?

との主な違いmemcpy()、送信元と宛先が重複している場合に正常に機能するmemmove()ことです。memmove()バッファが確実にオーバーラップしない場合は、 memcpy()の方が高速である可能性があるため、望ましいです。

私を悩ませているのは、これが潜在的にです。それはマイクロ最適化ですか、それとも、どこにでも固執するのではなく、memcpy()実際に使用する必要があるように、より高速である場合の実際の重要な例がありますか?memcpy()memmove()

0 投票する
3 に答える
316 参照

c - Generic editable functions in C using void*

I fall in some problem.

I need to write some function like memcpy(void*, const void*), which its signature should be:

I noticed that, in many implementation of memcpy, we cast void* to char*, but I think this is not the case of me, as the arrayCopy function needed to be used on arrays of many types including structs.

So, how can I accomplish this?

EDIT: the source code might be something like that:

Thanks.

0 投票する
6 に答える
469 参照

c - char 以外のデータをパラメーターとして使用する memcpy の問題!

次のプログラムは目的のデータを出力しません (VC2008 コンパイラで)

代わりに配列を使用charすると、すべてがうまくいきます! ここで問題はどこですか?

0 投票する
3 に答える
2270 参照

c - バイトアライメントではないソースからメモリをコピーする方法 (シフト)

このタスクを達成するための厄介で非効率的な方法をいくつか思いつくことができますが、最善の方法は何か疑問に思っています。

たとえば、バイトの 3 ビット目から 10 バイトをコピーし、通常どおりポインターにコピーしたいとします。

一度に 1 つのシフトされたバイトをコピーするよりも良い方法はありますか?

ありがとう

0 投票する
2 に答える
42229 参照

c++ - 「バイト数」をゼロに設定してmemcpy()とmemmove()を呼び出すことはできますか?

memmove()実際に移動/コピーするものがない場合、またはmemcpy()エッジケースとしてケースを処理する必要がありますか?

または、チェックせずに関数を呼び出す必要があります

前のスニペットのチェックは必要ですか?

0 投票する
2 に答える
823 参照

c - memcpy/memmoveの奇妙な振る舞い

memcpy / memmovestruct FOO fooが、関数のsrcでも宛先でもないのポインタを変更するという問題があります。gdbの出力は次のとおりです。

memmove(y,y_temp,size_y);

以降:

変数の定義は次のとおりです。

私はそれがmemcpy/moveのバグではないことを知っているので、私はヒントを探しています。私の側のプログラミングエラーがそれを引き起こした可能性があります。

ありがとう

0 投票する
3 に答える
38879 参照

c++ - memcpy を使用して配列から要素の範囲をコピーする

2 つの配列があるとします。

を使用して、matrix[80:89] から配列に 10 個の要素をコピーしmemcpyます。

簡単な解決策はありますか?

0 投票する
3 に答える
1359 参照

c++ - memcpy が正しく機能しないのはなぜですか?

いくつかの信頼できるデータ転送プロトコルの実装に関する情報を保持する RDT ヘッダーのクラスがあります。その情報 (合計 12 バイト) を送信バッファーにアタッチして、ソケット経由で転送する必要があります。これを行うためにmemcpyを使用しようとしていますが、何らかの理由でバッファ内にジャンクが残るだけです。以下は、動作していないコード行です。(RDT_HDR_SIZE は 12 として定義されます)。

この関数に渡される変数の定義。

問題が発生している memcpy の関数。

RDT_HDR_SIZE を取り出すと、ペイロードは適切に buf に割り当てられますが、すべてのヘッダー フィールドが消去されます。これを機能させる方法はありますか?

ありがとう、

エリック R.

編集:

これが私の RdtHeader クラスのコードです。おそらく役に立つでしょう。

0 投票する
3 に答える
2697 参照

c++ - C++ 構造体配列のコピー

memcpy を使用して、構造体配列の要素を別の構造体配列にコピーしたいと考えています。これが、何らかの理由で私のプログラムを惨めに失敗させていると思います。また、最後にメモリを解放するにはどうすればよいですか?

0 投票する
7 に答える
1877 参照

c - memcpy は失敗しますが、代入は文字ポインターにありません

実際、memcpy は、文字へのポインタを使用すると問題なく動作しますが、文字へのポインタへのポインタを使用すると動作しなくなります。

ここで memcpy が失敗する理由、またはさらに良いことに、自分でそれを理解する方法を誰かが理解するのを手伝ってくれませんか。私の c/c++ コードで発生する問題を理解するのは非常に難しいと感じています。