unsafe

    8

    2答えて

    :これはCS1663になります [StructLayout(LayoutKind.Sequential,Pack=1), Serializable] public unsafe struct MyStruct{ ... } public class MyClass { ... public fixed MyStruct myStruct[256]; }

    1

    1答えて

    オブジェクトの型として格納されている任意の型の配列の最初の要素のメモリアドレスを取得する必要があります。たとえば、配列はdouble []またはint []でもかまいませんが、コードではObjectとして型指定されます。 既知の型の配列のアドレスを取得するのは簡単ですが、C#ではオブジェクトのアドレスを取得することはできません。このような配列を格納するために使用できる型(Object以外)があり、

    2

    1答えて

    long* array = stackalloc long[50]; 1) array[10] 2) *(array + 10) 私は2番目のバージョンの代わりにする必要がありますか高速であるか、または一度私たちがポインタを取得した同じですか?

    5

    3答えて

    C#から配列の配列をネイティブ関数に渡す方法については、私は解決策を考え出しています。私はすでに関数(Marshal.GetDelegateForFunctionPointer)への代理人を持っていますが、今は多次元配列(またはむしろ配列の配列)を渡そうとしています。 このコード例は、入力に2つのサブアレイがある場合に機能しますが、任意の数のサブアレイを処理できる必要があります。あなたはそれをする

    11

    2答えて

    私は、WPFのWriteableBitmapを取得し、安全でないコードを使用してBackBufferから直接読み取るメソッドをたくさん持っています。一方 int MyMethod(WriteableBitmap bmp) { return DoUnsafeWork(bmp.BackBuffer); } は、MyMethodのスタック上のbmpへの参照が残っている: それは私がこの

    3

    1答えて

    固定ポインタをあるメソッドから別のメソッドに戻すのが安全かどうか、固定されたオブジェクトはまだ固定されていますか?例えば struct TestData { public int value; } public class Class1 { private TestData data; public unsafe TestData* GetDataPtr(

    6

    2答えて

    .NETはCスタイルnullを使用して文字列を終了します。どのようにして割り当てられた文字列を保持できますか?安全でないコードを使用して長さを変更できますか? すべての文字列に20バイトのヘッダーを使用して.NETを理解しているので、おそらくこれは文字列の長さが格納されている場所です。この長さを直接変更するにはどうしますか? .NETは文字列をメモリに保持しますが、.Lengthを呼び出すと、.L

    3

    3答えて

    標準のC#アプリケーションで使用しているコードがあります。 安全でないコードを許可しないSilverlightプロジェクトでライブラリを共有しています。私は安全でない/ポインタのロジック/算術についてはあまり知らないし、誰かが次のコードスニペットを翻訳して/安全でない状態で実行できるかどうか疑問に思っていた。コードがクライアント上で頻繁に呼び出されることはないため、パフォーマンスの低下は気にしませ

    7

    4答えて

    私はこのコンストラクトがパフォーマンスクリティカルセクションの一部である高性能コードについて取り組んでいます。 stringが「スキャン」され、メタデータを効率的に格納されている: これは、いくつかのセクションに何が起こるかです。 このメタデータに基づいて、メインストリングのチャンクはchar[][]に分かれています。 char[][]はstring[]に転送する必要があります。 new stri

    0

    5答えて

    (安全でないキーワードを使用せずに)ポインタを渡すシミュレートする方法があり、以下を達成することができる。 が関数にパラメータとして渡されたフィールドを持ちます。この関数は、そのフィールドの値を定期的に変更することができます。 ので、私が持っている場合: int MyField; と: MyFunction(ref MyField) 機能がMyFieldへのポインタを格納することができ、必