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

c# - このコードを改善して安全に使用するにはどうすればよいですか?

私はこのコードを取り上げましたが、使用するのは危険なコードであり、WP7 では使用できない可能性があることを理解しています。おそらくtry/catchを使用して、このコードを安全に使用できるようにする方法について誰かが考えていますか?

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

pointers - Go で **T を *unsafe.Pointer に変換する

タイプの変数を に変換するにはどうすればよい**Tです*unsafe.Pointerか?

以下の例では、コンパイル エラーが発生します。

&ptr (タイプ **s) をタイプ *unsafe.Pointer に変換できません

に切り替える(*unsafe.Pointer)(&ptr)&unsafe.Pointer(ptr)、次のコンパイル エラーが発生します。

unsafe.Pointer(ptr) のアドレスを取得できません

Ps。sync/atomic実際にそのような変換を行う必要がある状況の 1 つであるため、例を作成することにしました。

編集

間違った解決策の 1 つは、一時変数を使用することです。

コンパイル中、CAS は に格納されているものだけを交換し、 に格納されupていないものを交換しptrます。zeebo@#go-nuts が指摘したように、これは望ましい結果ではありません。

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

c# - 「安全でない」ポインターを使用して回避するために LayoutKind.Explicit を使用することは正当ですか?

ポインターを使用してデータのブロックに対して XOR を実行するコードがありますが、これは高速ですが、アセンブリの「安全でない」要件を取り除きたいと考えています。LayoutKind.Explicit を使用するように変更し、「ulong[]」を「byte[]」の上に重ねると、基本的にはポインターで行ったのと同じことをしていますが、同じように危険なようです。これら 2 つの主な違いは、「安全」バージョンの速度が「安全でない」バージョンの約 1/2 であることです。

これは「安全でない」アセンブリを回避するための正当な方法ですか、それとも一度に 1 バイトずつ byte[] にアクセスすることが安全な方法でこれを行う唯一の正当な方法ですか?

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

c# - アンセーフ コードのエラー、ポインタを使用したメモリの読み取り

メモリ内にバイナリ シリアル化されたオブジェクトがあり、C# でポインター (unsafae コード) を使用してメモリから読み取りたいと考えています。メモリストリームから読み込んでいる次の関数を見てください。

このreturn *(Results*)packet;ステートメントで、コンパイル時の例外「マネージド型の結果のアドレスを取得したり、サイズを取得したり、ポインターを宣言したりできません」

これが私の構造です

私の理解によると、構造体のすべてのプロパティは blittable プロパティです。なぜこのエラーが発生するのですか?また、構造体で char[] を使用する必要がある場合はどうすればよいですか?

EDIT-1 さらに説明させてください(オブジェクトが嘲笑されていることに注意してください)...

背景:Resultsオブジェクトの配列があり、バイナリ シリアル化を使用してそれらをシリアル化しました。ここで、プログラムの後の段階で、データ ボリュームが非常に大きいため、メモリ内のデータをできるだけ早く逆シリアル化する必要があります。そこで、安全でないコードがどのように役立つかを試していました。

構造に が含まれていない場合、public char[] Product;かなりの速度でデータが返されます。しかし、char[] を使用すると、エラーが発生します (コンパイラがそうする必要があります)。このコンテキストで char[] で機能するソリューションを探していました。

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

swift - 「inout String」は「UnsafePointer」に変換できません'

を取る関数を使用していますUnsafePointer<String>

文字列からを取得するにはどうすればよいUnsafePointer<String>ですか?

試し&someStringてみるとエラーが表示されます:

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

null - Swift: gettimeofday と安全でないポインター

Swift のコード

Objective C のコード

私は UnsafePointer と NULL を渡す代わりの方法についてより多くの情報を見つけようとしていますが、間違ったツリーを鳴らしている可能性があります。

同等のコードを Swift で動作させる方法を誰かが知っていれば、それは素晴らしいことです。何が起こっているのかについての良い説明があれば、それはさらに良いでしょう!

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

pointers - Swift では、2 つの UnsafePointers が同じメモリを参照しているかどうかをどのように判断しますか?

float の 2 つの C 配列を指す "UnsafePointer<Float>" 型の 2 つの変数があります。

それらが指すメモリの値にアクセスする方法はすでに知っています。

方法がわからないのは、両方が同じメモリを参照しているかどうかを判断することです(つまり、両方が同じアドレスを指しています)。

2 つの UnsafePointers によって格納されたメモリ アドレスが同じかどうかを確認するにはどうすればよいですか?

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

objective-c - unsafeMutablePointer<32> から整数値を迅速に取得できません

私のプロジェクトでは、swift クラスと obj-c クラスを一緒に使用しています。

そして、これを obj-c ヘッダー ファイルで宣言します。

Swift クラスでこの obj-c コードを使用したい:

次のようにswiftに変換します。

ただし、「UnsafeMutablePointer < Int32>」は「Int32」に変換できないというエラーが表示されます

私もこれを試しました:

しかし、今回はIntegerTypeの使用に関するエラーが表示されます。どうすればいいのかわからない。私は迅速で客観的なcの初心者です。助けてくれてありがとう。