問題タブ [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 投票する
1 に答える
1364 参照

rust - Rust の特定のメモリ位置に構造体をコピーする

たとえば、があるstruct場合:

0x1000メモリ内の特定の場所、たとえばメモリ内のポイントに効率的にコピーするにはどうすればよいですか? このようなものは機能しますか?

repr(C, packed)ここで実際に部品が必要になることに注意してください。

ソフトウェアは、オペレーティング システムやその他の制限なしで、ベア x86_64、リング 0で実行されています。また、私は標準ライブラリなしでプログラミングしているので、これはライブラリだけで達成できるはずcoreです。

もちろん、これは安全ではありませんが、問題ではありません。

編集:明確にする:初期化されていないメモリにコピーしています。

0 投票する
0 に答える
354 参照

python - ctypes.memmove() を使用して ctypes POINTER から numpy 配列を作成すると、間違った結果が返される

ctypes を使用して C++ 関数を呼び出し、ホモグラフィを計算しています。次に、numpy配列に変換されました。C++ で印刷されたホモグラフィは正しいです。ただし、Python では、ctypes.memmove() を使用して numpy 配列に変換した後は完全に間違っています。

たとえば、C++ では、ホモグラフィは次のようになります。

[[0.999931、3.05449e-06、0.0219359]、

[-3.46952e-05、1.00004、0.0162477]、

[-1.20569e-08、-6.80167e-09、1]]

Python では、trs_matrix (ホモグラフィ) は次のとおりです。

[[ 3.36311631e-44, 0.00000000e+00, 2.25339716e+12]

[ 4.59163468e-41,2.25339612e+12, 4.59163468e-41]

[ 2.25339821e+12,4.59163468e-41, 2.24207754e-44]]

Python コード:

C++ コード:

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

c++ - memmove 関数は一時ポインタと同じアドレスを共有しますか?

float 値の配列へのポインターがあるとします。float *source;そのサイズは次のようにわかっています。int sourcesize;

souceから配列に要素を追加する実装済みの関数がありますinputVec

mここで、ソース配列の th 要素から 1 つの要素をコピーして、ソースの末尾にアタッチします。上記の addRecord を使用して、以下の関数を実装しました。

memmove関数内の呼び出しaddRecordは一時変数の場所を共有しているようです。したがって、最終的には削除temporaryしない方がよいかもしれません。しかし、おそらく彼らは同じアドレスを共有していないと思うのでtemporary、この場合は削除する必要があります.

それで、temporary最後に削除する必要がありますか?

sourceまたは、 function を使用して要素を配列からその末尾にコピーするより良い方法はありますaddRecordか?

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

c++ - 2つの要素を頭からベクトルの指定された位置に移動する方法

最初の 2 つの要素をベクトル内の指定された位置に移動したいのですがmemmove、次のコードで使用すると結果が正しくありません。

そうすることによる結果は ですが1, 2, 3, 1, 0、期待値は1, 2, 3, 1, 2です。どうすれば自分の仕事を達成できますか?

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

c++ - C++ - 2D 配列のアイテムに memmove を使用するには?

次の 2D 配列があります。

そして、次のように、すべてのチャネルのコードでメモリのブロックを移動し続けます。

ただし、これにより間違った結果が得られ、その理由がわかりません。memmove使用している通話の何が問題になっていますか?

または、代わりに次の 1D 配列 (チャネルごとに 1 つ) を使用してみましたが、正しい結果が得られました。