ToRawPointer

ToRawPointer[]

在编译后的代码中创建一个新的指针对象,适合与外部程序库一起使用.

ToRawPointer[val]

创建一个指向初始值 val 的新对象.

ToRawPointer[p,val]

val 保存在指针 p 中.

ToRawPointer[array,offset,val]

val 保存在 "CArray" array 中指定的偏移位置处.

更多信息

  • ToRawPointer 只在编译代码中可用.
  • ToRawPointer 分配堆栈上的内存.
  • ToRawPointer 生成的指针在生成它的函数返回时失效.
  • FromRawPointer 可用来提取 ToRawPointer 生成的指针的值.
  • ToRawPointer[val] 创建 val 的副本并返回它的地址. 对副本做出的改变不会影响 val,反之亦然.
  • ToRawPointer[array,offset,val] 可将元素储存在数组中.
  • 在 C 语言中,以下用法与 ToRawPointer 的用法等同:
  • p=ToRawPointer[]int x; int* p = &x;
    p=ToRawPointer[val]int x = val; int* p = &x;
    ToRawPointer[p,val]*p = val;
    ToRawPointer[array,offset,val]array[offset] = val; or *(array+offset) = val;

范例

打开所有单元关闭所有单元

基本范例  (1)

创建一个指向整数的指针,然后取消引用它:

范围  (2)

更新  (1)

ToRawPointer 可更新现有指针:

偏移  (1)

ToRawPointer 可以为数组的不同元素赋值:

应用  (2)

表示通过修改指针返回其结果的库函数:

编译一个使用该函数的程序:

表示一个求 "CArray" 的和的库函数:

编译一个使用 ToRawPointer 填充 "CArray" 的程序,以便可以将其传递给 "sumArray"

可能存在的问题  (2)

因为 ToRawPointer[val] 创建了指向 val 的副本的指针,修改指针的函数将不能修改原始的 val.

表示修改指针的函数:

编译一个程序,用一个变量初始化指针,调用修改指针的函数,然后返回原来的变量:

因为 ToRawPointer[n] 创建了指向 n 的副本的指针,incrementInput 只修改指针引用的值,n 保持不变:

ToRawPointer 生成的指针在生成它的函数返回时失效. 在指针失效后使用它可能会导致崩溃.

定义一个返回无效指针的函数:

编译在无效指针上调用 FromRawPointer 的函数可能会导致崩溃:

Wolfram Research (2022),ToRawPointer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ToRawPointer.html.

文本

Wolfram Research (2022),ToRawPointer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ToRawPointer.html.

CMS

Wolfram 语言. 2022. "ToRawPointer." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ToRawPointer.html.

APA

Wolfram 语言. (2022). ToRawPointer. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ToRawPointer.html 年

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_torawpointer, organization={Wolfram Research}, title={ToRawPointer}, year={2022}, url={https://reference.wolfram.com/language/ref/ToRawPointer.html}, note=[Accessed: 21-November-2024 ]}