RawPointer

RawPointer[addr,type]

メモリアドレス addr における指定の type への素のポインタを表す.

詳細

  • RawPointerは,ForeignFunctionRawMemoryAllocate等の関数によって返される.
  • 素のメモリを割り当てる関数はメモリ管理されたポインタを返す.
  • OpaqueRawPointerを使って型なしポインタを表すことができる.
  • RawPointer[ptr,type]を使ってポインタを型付きポインタにキャストすることができる.
  • RawPointerについてのInformationには以下の特性が含まれることがある.
  • "Address"メモリアドレス
    "Type"参照される型
  • RawPointerの特性はRawPointer[][prop]で抽出できる.
  • 抽出可能な特性には,上記にリストされたすべてのInformation特性が含まれる.

例題

すべて開くすべて閉じる

  (1)

管理されたRawPointerによって表された素のメモリとして文字列をエキスポートする:

ポインタの管理をやめる:

素のメモリの値を書き出す:

素のメモリを文字列としてインポートする:

素のメモリを解放する:

スコープ  (1)

情報  (1)

素のメモリへのポインタを作成する:

ポインタについてのInformationを得る:

ポインタのメモリアドレスを得る:

ポインタの型を得る:

特性と関係  (5)

RawMemoryAllocateのような関数はメモリ管理されたRawPointerを返す:

UnmanageObjectを呼び出して管理されたポインタの所有権を得る:

割り当てられたポインタのメモリ管理がもはやアクティブではない点に注意のこと:

管理されていないポインタはRawMemoryFreeで解放してメモリリークを防ぐべきである:

素のポインタがアドレスとして0を有するなら,NullRawPointerQTrueを返す:

ある程度の素のメモリを割り当てる:

RawPointerOpaqueRawPointerに変換する:

不透明型の素なポインタをRawPointerに変換し直す:

"UnsignedInteger8"型のオブジェクトに素なメモリを割り当てる:

ポインタをRawMemoryWriteに渡すことで素なメモリの値を書き出す:

RawMemoryReadで素なメモリを読み出す:

10個の"CLong"オブジェクトにバッファを割り当てる:

ForeignFunctionLoadを使ってこのバッファに入力する関数をロードする:

バッファとその長さを渡すことでこの関数を呼び出す:

RawMemoryImportを使って素のメモリをリストとしてインポートする:

考えられる問題  (1)

RawPointerは無効なメモリアドレスに対してFailureを返す:

Wolfram Research (2023), RawPointer, Wolfram言語関数, https://reference.wolfram.com/language/ref/RawPointer.html.

テキスト

Wolfram Research (2023), RawPointer, Wolfram言語関数, https://reference.wolfram.com/language/ref/RawPointer.html.

CMS

Wolfram Language. 2023. "RawPointer." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RawPointer.html.

APA

Wolfram Language. (2023). RawPointer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RawPointer.html

BibTeX

@misc{reference.wolfram_2024_rawpointer, author="Wolfram Research", title="{RawPointer}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/RawPointer.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_rawpointer, organization={Wolfram Research}, title={RawPointer}, year={2023}, url={https://reference.wolfram.com/language/ref/RawPointer.html}, note=[Accessed: 22-November-2024 ]}