問題タブ [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.
c# - このコードを改善して安全に使用するにはどうすればよいですか?
私はこのコードを取り上げましたが、使用するのは危険なコードであり、WP7 では使用できない可能性があることを理解しています。おそらくtry/catchを使用して、このコードを安全に使用できるようにする方法について誰かが考えていますか?
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 が指摘したように、これは望ましい結果ではありません。
c# - 「安全でない」ポインターを使用して回避するために LayoutKind.Explicit を使用することは正当ですか?
ポインターを使用してデータのブロックに対して XOR を実行するコードがありますが、これは高速ですが、アセンブリの「安全でない」要件を取り除きたいと考えています。LayoutKind.Explicit を使用するように変更し、「ulong[]」を「byte[]」の上に重ねると、基本的にはポインターで行ったのと同じことをしていますが、同じように危険なようです。これら 2 つの主な違いは、「安全」バージョンの速度が「安全でない」バージョンの約 1/2 であることです。
これは「安全でない」アセンブリを回避するための正当な方法ですか、それとも一度に 1 バイトずつ byte[] にアクセスすることが安全な方法でこれを行う唯一の正当な方法ですか?
c# - アンセーフ コードのエラー、ポインタを使用したメモリの読み取り
メモリ内にバイナリ シリアル化されたオブジェクトがあり、C# でポインター (unsafae コード) を使用してメモリから読み取りたいと考えています。メモリストリームから読み込んでいる次の関数を見てください。
このreturn *(Results*)packet;
ステートメントで、コンパイル時の例外「マネージド型の結果のアドレスを取得したり、サイズを取得したり、ポインターを宣言したりできません」
これが私の構造です
私の理解によると、構造体のすべてのプロパティは blittable プロパティです。なぜこのエラーが発生するのですか?また、構造体で char[] を使用する必要がある場合はどうすればよいですか?
EDIT-1 さらに説明させてください(オブジェクトが嘲笑されていることに注意してください)...
背景:Results
オブジェクトの配列があり、バイナリ シリアル化を使用してそれらをシリアル化しました。ここで、プログラムの後の段階で、データ ボリュームが非常に大きいため、メモリ内のデータをできるだけ早く逆シリアル化する必要があります。そこで、安全でないコードがどのように役立つかを試していました。
構造に が含まれていない場合、public char[] Product;
かなりの速度でデータが返されます。しかし、char[] を使用すると、エラーが発生します (コンパイラがそうする必要があります)。このコンテキストで char[] で機能するソリューションを探していました。
swift - 「inout String」は「UnsafePointer」に変換できません'
を取る関数を使用していますUnsafePointer<String>
。
文字列からを取得するにはどうすればよいUnsafePointer<String>
ですか?
試し&someString
てみるとエラーが表示されます:
null - Swift: gettimeofday と安全でないポインター
Swift のコード
Objective C のコード
私は UnsafePointer と NULL を渡す代わりの方法についてより多くの情報を見つけようとしていますが、間違ったツリーを鳴らしている可能性があります。
同等のコードを Swift で動作させる方法を誰かが知っていれば、それは素晴らしいことです。何が起こっているのかについての良い説明があれば、それはさらに良いでしょう!
pointers - Swift では、2 つの UnsafePointers が同じメモリを参照しているかどうかをどのように判断しますか?
float の 2 つの C 配列を指す "UnsafePointer<Float>" 型の 2 つの変数があります。
それらが指すメモリの値にアクセスする方法はすでに知っています。
方法がわからないのは、両方が同じメモリを参照しているかどうかを判断することです(つまり、両方が同じアドレスを指しています)。
2 つの UnsafePointers によって格納されたメモリ アドレスが同じかどうかを確認するにはどうすればよいですか?
objective-c - unsafeMutablePointer<32> から整数値を迅速に取得できません
私のプロジェクトでは、swift クラスと obj-c クラスを一緒に使用しています。
そして、これを obj-c ヘッダー ファイルで宣言します。
Swift クラスでこの obj-c コードを使用したい:
次のようにswiftに変換します。
ただし、「UnsafeMutablePointer < Int32>」は「Int32」に変換できないというエラーが表示されます
私もこれを試しました:
しかし、今回はIntegerTypeの使用に関するエラーが表示されます。どうすればいいのかわからない。私は迅速で客観的なcの初心者です。助けてくれてありがとう。