問題タブ [memmove]

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 投票する
4 に答える
2187 参照

c - memmove と個々の配列要素のコピー

CLRS の第 2 章には、挿入ソートの最悪の場合の実行時間を に改善するかどうかを尋ねる演習がありますO(n lg n)この質問を見て、それができないことがわかりました。

最悪の場合の複雑さを改善することはできませんがmemmove、実際の実行時間を使用することで、配列要素を個別に移動するよりも優れているでしょうか?

要素を個別に移動するためのコード

を使用して要素を移動するためのコード memmove

2番目のものを完全に実行することはできませんでしたが、それは私が考えていることの例です。

を使用することで目に見える速度の向上はありますmemmoveか?

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

c - ビット単位のメモリ移動

bitwise を実装する最良の方法は何memmoveですか? メソッドは追加の宛先とソースのビットオフセットを取り、カウントもビット単位である必要があります。

  • ARM が非標準の を提供している_membitmoveことがわかりました。これはまさに私が必要としているものですが、そのソースが見つかりませんでした。
  • バインドのビットセットにはisc_bitstring_copyが含まれていますが、効率的ではありません
  • C 標準ライブラリがそのようなメソッドを提供していないことは承知していますが、同様のメソッドを提供するサードパーティ コードも見つかりませんでした。
0 投票する
2 に答える
481 参照

c - memmove がバッファーのすべての内容をコピーしない - C

長さ7バイトのバッファを作成しようとしている次のコードがあり、バッファ内のchar配列とともに整数をネットワークバイトオーダーに入れます。バッファの最後にNull文字を含めるべきではありませsprintf()んだから私はmemcpy()7バイトだけをコピーするために使用しています。ただし、の後に異なるバッファーを取得しているようですmemcpy()

コード:

次の出力が得られます。

0 投票する
1 に答える
335 参照

c++ - std::copy の制限は std::memcopy よりも緩いですか?

問題 copy vs. memcpy vs memmoveに関して(ここで優れ 情報、ところで)、私は読んでいて、口頭で言われていることとは異なり、たとえばcppreference注: memcpy はに変更されましたこの引用を受け取ってからmemmove。 --

ノート

実際には、 の実装ではstd::copy複数の代入を避けstd::memcpy、値の型が TriviallyCopyable

-- std::copy(nor std::copy_backward)は、宛先範囲の先頭のみがソース範囲に入ってはならず、範囲全体が重複してはならないため、 に関して実装することはできません。memcopystd::copymemcpy

Visual-C++ の実装 (xutilityヘッダーを参照) を見ると、VC++ がmemmoveを使用していることもわかりますが現在は よりも要件が緩和されていますstd::copy

... オブジェクトがオーバーラップする可能性があります。コピーは、文字が一時的な文字配列にコピーされ、次に文字が配列からコピーされたかのように行われます ...

したがってstd::copy、の観点からの実装memcpyは不可能に見えますが、使用memmoveは実際にはペシミゼーションです。(ほんの少しの悲観化、おそらく測定できないかもしれませんが、それでも)

質問に戻るには:私の要約は正しいですか? これはどこかで問題がありますか?指定されているものに関係なく、memcpyの要件も満たさないの実用std::copy的なmemcpy実装の可能性さえありstd::copyますか?

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

c - memmoveの実装について

wikibooks.orgでパブリック ドメインの実装を見ていました。次のように memmove() を実装し、「完全に移植可能ではない」ことを明示的に述べています。なぜだろうと思っていました:

  1. かっこはコードの最初の行に配置され、
  2. コードは完全に移植可能ではありません。

コードは次のとおりです。

0 投票する
1 に答える
869 参照

c - memmove で __np_anyptrlt を使用しますか?

このリンクから: http://clc-wiki.net/wiki/memmove

の使用は__np_anyptrlt冗長ですか?なぜ使用しないのif (ps < pd)ですか?

0 投票する
1 に答える
148 参照

memcpy - いつ memcpy を使用し、いつ memmove を使用する必要がありますか?

memcpy と memmove 関数の間に重要な違いはありますか? いつ memcpy を使用し、いつ memmove を使用する必要がありますか?

0 投票する
5 に答える
1150 参照

c++ - memmove は (for ループと同じように) 要素をシフトしますか、それとも一度にメモリ ブロック全体を取得しますか?

私のアルゴリズムのクラスでは、整数のリストの重複を削除するアルゴリズムを導入し、可能な限り複雑さを軽減する必要があります。私のアルゴリズムでは、重複する整数が表示されると、for ループを使用して重複した要素を削除するために、その整数の後のすべての要素を 1 インデックス下にシフトします。そのようです:

アルゴリズムが memmove を使用する方が効率的でしょうか? さらに、アルゴリズムを設計することが私の仕事であり、memmove がアルゴリズムの複雑さを軽減すると仮定すると、memmove の使用は「不正行為」と見なされる可能性がありますか?