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

swift - Swift 構造体を UnsafeMutablePointer にキャストする

Swift構造体のアドレスをvoid UnsafeMutablePointerにキャストする方法はありますか?
私は成功せずにこれを試しました:

ありがとう!

編集:
私が実際に Swift に移植しようとしているコンテキストは、 Learning CoreAudioの最初の例です。
これは私が今までやってきたことです:

私は Swift にとどまる努力をしていますが、これが利点よりも問題であることが判明した場合は、C 関数にリンクすることになります。

編集: 下の行
Swift で CoreAudio の AudioQueue を使用しようとしているためにこの質問にたどり着いた場合は、使用しないでください。(詳しくはコメントを読んでください)

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

objective-c - Objective-C ポインター マジック。タイプ保護

私は辞書を持っています。次のように、その値の 1 つを抽出します。

そして foo は次のとおりです。

辞書の値が数値の場合、magicValue は になりますNSNumber。したがって、定義された文字列ポインターはNSNumber. ログは、番号チェックに対して yes を返します。

クラス「magicValue」が何であるかを確認するために、そのようなメソッドに保護を追加したことはありません。文字列パラメーターでメソッドを定義すると、文字列になると想定しました。

そのような振る舞いを説明し始めて、常にチェックを追加する必要がありますか、それともそのような方法でその辞書の値を魔法に割り当てて私の方法を使用した人のせいですか. ベストプラクティスのアドバイスと、これを処理する方法が必要です。

この質問はすでに回答されている可能性がありますが、検索方法がわかりませんでした。

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

c# - 現在も「public String(char* value)」を使用していますか?

私は(文字列「クラス」(.NET)の内部(定義))に出くわしました:

解説に書かれていること:

私の質問:

安全でないコンテキストでのみ使用できますか、現在でもその String(char* value) を使用することは理にかなっていますか、またはこれは過去からの遺物であり、この "ABC\0"(その文字列の終了) に基づいていますか?

私がそれを使用できる/使用する必要がある場合、この方法の状況はどのようになりますか?

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

ios - NSMutableData がポインタのアドレスを変更するのはなぜですか?

メモリをすばやく事前に割り当ててラップしたいのですNSMutableDataが、ポインターを介してアクセスします。だから私はこれを持っています:

しかし、vertexポインターのアドレスを確認すると、別の値が表示vertexData.bytesされるため、ポインターを使用してインデックスでデータを変更することはできません。これを回避し、メモリ ブロックを 1 つだけにする方法は?

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

c# - (byte* + オフセット) を byte[] に割り当てる方法は?

私は構造体を持っています:

最初のバイトはTypeCode. 残りの 15 バイトは、UTF8 でエンコードされた文字列です。

nameBuf以下を使用してバイト配列を埋めています。

上記のコメント付きのコードでは、while反復なしで同じタスクを達成しようとしていましたが、機能しません (コンパイル エラーではなく、補間が間違っているだけです)。nameBuf-loopなしで割り当てることはできますwhileか?

更新.ではなく.
を使用することもお勧めします。(byte*)Marshal.Copy