問題タブ [unsafe-pointers]

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

c# - DSP ルーチンを C/C++ で書き直す必要がありますか? それとも、C# の安全でないポインターに慣れていますか?

現在、多くのデジタル信号処理を行う C# アプリケーションを作成しています。これには、微調整された小規模なメモリ xfer 操作が多数含まれます。安全でないポインターを使用してこれらのルーチンを作成しましたが、最初に考えたよりもはるかに優れたパフォーマンスを発揮するようです。ただし、アプリをできるだけ高速にしたいと考えています。

これらのルーチンを C または C++ で書き直すことでパフォーマンス上の利点が得られるでしょうか?それとも、安全でないポインターに固執する必要がありますか? C/C++ と比較して、安全でないポインターがパフォーマンスの観点からテーブルにもたらすものを知りたいです。

編集: これらのルーチン内で特別なことは何もしていません。通常の DSP のことだけです。多くの乗算、加算、ビット シフトなどを使用して、ある配列から別の配列にキャッシュ フレンドリーなデータを転送します。C/C++ ルーチンは、対応する C# ルーチンとほぼ同じ (同一ではないにしても) に見えると思います。

編集:すべての賢い答えに感謝します。私が学んだことは、ある種の SSE 最適化が行われない限り、直接移植するだけではパフォーマンスが大幅に向上しないということです。最新のすべての C/C++ コンパイラがそれを利用できると仮定すると、試してみるのが楽しみです。誰かが結果に興味がある場合は、私に知らせてください。どこかに投稿します。(ただし、しばらく時間がかかる場合があります)。

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

c# - 1つのステートメントで逆参照とポインタを進めますか?

次のようにバイト配列から読み取っています。

間違っている場合は訂正してください。ただし、++ は * よりも優先されるため、同じステートメントで *i と i++ を組み合わせることができますか? (例: *i++)

(これは技術的に安全でない C# であり、C++ ではありません。p はバイトです*)

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

c# - C#でポインターからバッファーへの文字列を読み取る方法

この C++ dll 呼び出しから C# のエラー文字列を読み取るにはどうすればよいですか?

ありがとう!

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

c# - 「安全でないコードを許可する」設定に準拠した C# アプリケーションをネットワーク上の場所から実行する

私の C# アプリケーションはポインターを使用しているため、「安全でないコードを許可する」設定を使用してコンパイルされています。このようなアプリケーションをネットワーク上の場所から実行することは非常に困難であるか、またはまったく不可能であることを知っています (または実行する方法はありますか??)。私が知りたいのは、エラーを処理する方法があるかどうかですこれは、ネットワークの場所からこのアプリケーションを実行しようとしているときに発生し、アプリケーションを正常に失敗させます。次のエラーが表示されます...「アプリケーションに問題が発生したため、閉じる必要があります」。例外情報には次のコードが含まれています: 0xe0434f4d

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

c++ - クラスのグローバルオブジェクトを宣言した後、システムがクラッシュする

私はC++に非常に慣れていません。次の手順を実行すると、システムがクラッシュします(コンパイルエラーではありません)。

クラスのグローバルポインタを宣言しています。

このクラスでは、XMLファイルからタグを読み取っています。このポインタを使用して値を取得すると、システムがクラッシュします。ベリフォン端末のコーディングをしています。

getreferencesetting()は、クラスEftBarclaysGiftConfigのメンバー関数です。

この場合、ポインタの動作について混乱しています。私は何か間違ったことをしていることを知っていますが、それを修正することができませんでした。

クラスの1つのオブジェクトをローカルで宣言すると、値が適切に取得されます。

しかし、このオブジェクトをグローバルとして宣言すると、システムもクラッシュします。

コード内の別の場所で値をフェッチする必要があるため、グローバルなものを使用する必要がありました。

この問題を修正するにはどうすればよいですか?

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

c# - クラスに整数の参照を割り当てます

クラスの初期化時に参照として整数を渡し、参照を安全にすることは可能ですか?

ポインターを使用できますが、安全でないコンテキストが必要です。

0 投票する
4 に答える
1083 参照

c++ - 初期化されていないポインタを持つクラスには未定義の動作がありますか?

これは有効なクラスですか (はい、コンパイルされます)? 逆参照する前に ptr2Int に値を割り当てた場合、クラスは期待どおりに動作することが保証されていますか?

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

c# - リストの変換方法C# の Byte[] へ

Double[] src から Byte[] dst への変換は、固定ポインターによって C# で効率的に行うことができます。

List src に対して同じことを行うにはどうすればよいですか? つまり、 List に含まれる配列 Double[] への固定ポインタを取得するにはどうすればよいですか? ありがとう。

0 投票する
4 に答える
684 参照

c++ - ポインタの不適切な使用が引き起こす可能性のあるこれらのいわゆる「災害」とは何ですか?

私は自分のプログラムでポインターをますます使用しており、ポインターについて読んでいる間、私が見つけたすべてのガイドまたはチュートリアルは、ポインターの誤った使用が「悲惨な」結果をもたらす可能性があると述べました。

さて、いくつかの大きなメモリリークが発生し、ポインタが間違ったポインタ変数を逆参照して間違った値を返したことがありますが、それ以外は「悲惨な」ことはありません。私のコンピュータや他のプログラムがクラッシュするように。

誰かが私に簡単なコード例を教えてもらえますか?それは間違いなく「悲惨な」結果をもたらします。おそらく、そのコードを誤って使用したことがある場合に備えて、何が起こったのかについての裏話がありますか?「悲惨な」結果とは、他のプログラムやOSに干渉し、クラッシュする可能性のあるコードを意味します。

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

c# - C#:ガベージコレクションからデリゲートを保存する(静的オプションなし)

私は現在、C dllのラッパークラスで静的デリゲートを使用して、安全でない関数を指すデリゲートがガベージで収集されないようにしています。
これは、クラスの複数のインスタンスをサポートする必要があるまでは正常に機能していました。回避策は静的デリゲートのリストを保持することかもしれませんが、もっと簡単な解決策を見つけたいと思います。