問題タブ [unsafe]

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 に答える
1670 参照

memory - sun.misc.Unsafe:アドレスからバイトを取得する方法

メモリから値を読み取る方法があると聞きました(メモリがJVMによって制御されている限り)。8E5203しかし、たとえばアドレスからバイトを取得するにはどうすればよいですか?と呼ばれるメソッドがありgetBytes(long)ます。これは使えますか?

どうもありがとう!ピート

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

c# - C# の構造ジェネリック

この問題で私を助けてください:

次のような構造を定義してみます。

しかし、私はこのエラーを受け取ります:アドレスを取得したり、サイズを取得したり、マネージド型 sNodo へのポインターを宣言したりできません。

どうすれば修正できますか?動的メモリを使用して「汎用」スタックを作成しようとしています。

ご清聴ありがとうございました

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

c# - アンマネージ ストリームからの読み取り - 安全でないコード、IntPtr

以下は、Firefox (Gecko) 3.5 コードで公開されています。

ここでは、小さな .Net/C# アプリで、コードの他の場所から返された this のインスタンスを利用したいと考えていますが、int Read(IntPtr aBuf, uint aCount)メソッドをどう処理するかがわかりません。

byte[]メソッドから受け取ったコンテンツをローカル配列に入力したいのですReadが、IntPtr をどうするか、またはそれをマネージ バイト配列に変換する方法がわかりません。

ヒント/推測/指針はありますか? (しゃれは意図されていません)

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

c# - 次の C# コードを説明してください: byte* p = (byte*) (void*) Scan0;

この行を理解できないネットからコードを見つけました:-

Scan0 はSystem.IntPtr です。 C#.Netのコードです。上記の行について説明してください。

完全なコードを以下に示します。これは画像をグレースケールに変換するコードです。

私はすべてのコードを理解していますが、この行にのみ問題があります。

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

c# - WPF ブラウザ アプリケーションは安全でないコードを実行できますか?

フラクタルをプロットし、ユーザーがインタラクティブに探索できるようにするソフトウェアを作成しています。現在、ウィンドウ化された wpf アプリにコードがあります。自分のウェブサイトに表示できるように、ブラウザでホストされている wpf アプリに入りたいと思います。問題は、コードが「安全でない」コードを使用してレンダリングを行うことです。GDI+ を使用する代わりに BitmapData を使用してイメージ メモリに直接アクセスしています。wpfブラウザアプリで安全でないコードを実行する方法はありますか?

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

c# - IntPtr を必要とするメソッドを呼び出すには、/unsafe と Marshal.AllocHGlobal のどちらを使用するのがよいでしょうか?

アプリケーションの期間中、いくつかのインスタンスが持続するクラスがあります。これらのオブジェクトはそれぞれ、既存の float[] バッファからデータを追加する dll メソッドを呼び出し、完全なデータセットを IntPtr (float 配列) を受け入れる DLL メソッドに毎秒数回渡す必要があります。アンマネージ コードとして実行する方がよいでしょうか:

または、安全でないタグを使用して修正した方がよいでしょうか?

コンパイラで「安全でない」タグを使用する必要がないという利点はありますか? マーシャルクラスは実際に「より安全」ですか? これらの方法のうち、一般的にパフォーマンスが優れているのはどれですか?

私が前者に傾いているのは_floats、メモリ空間をクリーンアップするときに GC が (非常に大きくなる可能性がある) 心配する必要がないからです。それは合理的な懸念ですか?推奨事項は ArraySize のサイズに依存しますか?

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

c# - ポインター (つまり int[]) を DLL に渡すときに、「固定」は本当に何かを保証しますか?

私はこれを検索しようとしましたが、何も見つかりませんでしたが、int[] をポインターとしてネイティブ DLL 関数に渡すと、DLL がポインターへの参照を維持できる危険性がまだありません。 「固定」ブロックが終了した後に再度アクセスしますか? GC がアレイを移動した場合、メモリ アクセス エラーが発生しませんか? もしそうなら、どうやってこれを回避しますか?それとも、これはありそうもないシナリオですか?

0 投票する
15 に答える
443077 参照

java - Javaでポインタを使用するにはどうすればよいですか?

Javaにはポインターがないことは知っていますが、Javaプログラムはポインターを使用して作成でき、これはJavaの専門家である少数の人が作成できると聞きました。それは本当ですか?

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

c# - 安全でないコードと StringBuilder を使用した修正されたステートメント

パラメータで文字列を出力するC関数にStringまたはStringBuilderを渡す方法について疑問に思っていました。私は素晴らしい答えを見つけました

C# からアンマネージ関数を呼び出す: StringBuilder を渡すか、安全でないコードを使用する必要がありますか?

しかし、私には疑問があります。インポートされた関数の実行中にガベージ コレクターが (マネージド) StringBuilder インスタンスを再配置しない理由を誰でも説明できますか?