問題タブ [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.
rust - Rust の特定のメモリ位置に構造体をコピーする
たとえば、があるstruct
場合:
0x1000
メモリ内の特定の場所、たとえばメモリ内のポイントに効率的にコピーするにはどうすればよいですか? このようなものは機能しますか?
repr(C, packed)
ここで実際に部品が必要になることに注意してください。
ソフトウェアは、オペレーティング システムやその他の制限なしで、ベア x86_64、リング 0で実行されています。また、私は標準ライブラリなしでプログラミングしているので、これはライブラリだけで達成できるはずcore
です。
もちろん、これは安全ではありませんが、問題ではありません。
編集:明確にする:初期化されていないメモリにコピーしています。
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++ コード:
c++ - memmove 関数は一時ポインタと同じアドレスを共有しますか?
float 値の配列へのポインターがあるとします。float *source;
そのサイズは次のようにわかっています。int sourcesize;
souce
から配列に要素を追加する実装済みの関数がありますinputVec
。
m
ここで、ソース配列の th 要素から 1 つの要素をコピーして、ソースの末尾にアタッチします。上記の addRecord を使用して、以下の関数を実装しました。
memmove
関数内の呼び出しaddRecord
は一時変数の場所を共有しているようです。したがって、最終的には削除temporary
しない方がよいかもしれません。しかし、おそらく彼らは同じアドレスを共有していないと思うのでtemporary
、この場合は削除する必要があります.
それで、temporary
最後に削除する必要がありますか?
source
または、 function を使用して要素を配列からその末尾にコピーするより良い方法はありますaddRecord
か?
c++ - 2つの要素を頭からベクトルの指定された位置に移動する方法
最初の 2 つの要素をベクトル内の指定された位置に移動したいのですがmemmove
、次のコードで使用すると結果が正しくありません。
そうすることによる結果は ですが1, 2, 3, 1, 0
、期待値は1, 2, 3, 1, 2
です。どうすれば自分の仕事を達成できますか?
c++ - C++ - 2D 配列のアイテムに memmove を使用するには?
次の 2D 配列があります。
そして、次のように、すべてのチャネルのコードでメモリのブロックを移動し続けます。
ただし、これにより間違った結果が得られ、その理由がわかりません。memmove
使用している通話の何が問題になっていますか?
または、代わりに次の 1D 配列 (チャネルごとに 1 つ) を使用してみましたが、正しい結果が得られました。