タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

PROGRAMMINGとpointerとsoftwareに関するItisangoのブックマーク (4)

  • fixed ステートメント - 移動可能な変数をピン留めする - C# reference

    fixed ステートメントは、ガベージ コレクターが移動可能な変数を再配置するのを防ぎ、その変数へのポインターを宣言します。 固定変数または固定変数のアドレスは、ステートメントの実行中に変更されません。 宣言されたポインターは、対応する fixed ステートメント内でのみ使用できます。 宣言されたポインターは読み取り時のみであり、変更できません。 unsafe { byte[] bytes = [1, 2, 3]; fixed (byte* pointerToFirst = bytes) { Console.WriteLine($"The address of the first array element: {(long)pointerToFirst:X}."); Console.WriteLine($"The value of the first array element: {*po

  • string型とsbyte*型の変換 - OKWAVE

    C++」というのは「C++/CLI」のことですか? 処理系がVC 2005以降だと仮定して話を進めます。 例えば下記のようなC++/CLIの参照クラスを含むクラス ライブラリ プロジェクト「CppCliString」があったとして、 // CppCliString.h #pragma once #include <cstdio> #include <locale.h> #include <vcclr.h> // http://support.microsoft.com/kb/311259/ja using namespace System; using namespace System::Runtime::InteropServices; namespace CppCliString { public ref class Class1 { public: static void SetL

    string型とsbyte*型の変換 - OKWAVE
    Itisango
    Itisango 2020/10/26
    IntPtr ptr = Marshal.StringToHGlobalAnsi(strText); CppCliString.Class1.PutsA((sbyte*)ptr); // unsafe #dotNet
  • 安全でないコード、データへのポインター、および関数ポインター - C# reference

    ポインター関連演算子の詳細については、「 ポインター関連の演算子」を参照してください。 ポインター型は、暗黙的に void* 型に変換できます。 ポインター型には、 null値を割り当てることができます。 キャスト式を使用して、任意のポインター型を他のポインター型に明示的に変換できます。 任意の整数型をポインター型に変換することも、任意のポインター型を整数型に変換することもできます。 これらの変換には、明示的なキャストが必要です。 次の例では、 int* を byte*に変換します。 ポインターが変数の最下位のアドレス指定バイトを指していることに注意してください。 結果を連続してインクリメントすると、 int のサイズ (4 バイト) まで、変数の残りのバイトを表示できます。 int number = 1024; unsafe { // Convert to byte: byte* p =

    Itisango
    Itisango 2020/10/21
    "To maintain type safety and security, C# does not support pointer arithmetic, by default. However, by using the unsafe keyword, you can define an unsafe context in which pointers can be used. For more information about pointers, see Pointer types." #dotNet
  • ptrdiff_t - cppreference.com

    [編集] ノート ptrdiff_t は、負の値を取り得る場合に、ポインタ算術や配列のインデックスのために使用されます。 int などの他の型を使用するプログラムは、例えば64ビットのシステムにおいて、インデックスが INT_MAX を超えるとき、または32ビットの剰余算術をあてにしている場合、失敗するかもしれません。 同じ配列の要素を指すポインタ (配列の最後の要素の次を指すポインタも含む) だけがお互いに減算することができます。 2つのポインタの差を ptrdiff_t で表せないかもしれないくらい配列が大きい (要素が PTRDIFF_MAX 個より多いけれどもサイズが SIZE_MAX バイトより小さい) 場合、そのような2つのポインタの減算の結果は未定義です。 PTRDIFF_MAX より短い文字配列に対して、 ptrdiff_t は size_t の符号付き版としての役割を持ち

    Itisango
    Itisango 2020/04/01
    typeof (pointer_a - pointer_b) == ptrdiff_t #C
  • 1