RawMemoryAllocate

RawMemoryAllocate[type]

分配足够的原始内存来存储指定类型的二进制表示.

RawMemoryAllocate[type,len]

len 个对象分配内存.

更多信息

  • RawMemoryAllocate 返回托管 RawPointer 对象.
  • 可能的类型及其对应的 C 类型包括:
  • "UnsignedInteger8"uint8_t没有正负号的 8 位整数
    "Integer8"int8_t有正负号的 8 位整数
    "UnsignedInteger16"uint16_t没有正负号的 16 位整数
    "Integer16"int16_t有正负号的 16 位整数
    "UnsignedInteger32"uint32_t没有正负号的 32 位整数
    "Integer32"int32_t有正负号的 32 位整数
    "UnsignedInteger64"uint64_t没有正负号的 64 位整数
    "Integer64"int64_t有正负号的 64 位整数
    "CUnsignedChar"unsigned char与 C 兼容的 unsigned char
    "CSignedChar"signed char与 C 兼容的 signed char
    "CUnsignedShort"unsigned short与 C 兼容的 unsigned short
    "CShort"short与 C 兼容的 short
    "CUnsignedInt"unsigned int与 C 兼容的 unsigned int
    "CInt"int与 C 兼容的 int
    "CUnsignedLong"unsigned long与 C 兼容的 unsigned long
    "CLong"long与 C 兼容的 long
    "CSizeT"size_t与 C 兼容的 size_t
    "CFloat"float与 C 兼容的 float
    "CDouble"double与 C 兼容的 double
    "OpaqueRawPointer"void*不透明指针
    "RawPointer"::[t]t*类型化指针
    {ty1,ty2,}struct {ty1 f1; ty2 f2; }构造或 product 类型
    "Void"void没有输出(仅在输出类型中)

范例

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

基本范例  (2)

为一个类型为 "CInt" 的对象分配内存:

往原始内存中写入一个值:

读取该值:

为 10 个类型为 "CFloat" 的对象分配原始内存:

用 0 到 1 之间的随机数初始化原始内存:

将原始内存的值导入为列表:

属性和关系  (3)

默认情况下,RawMemoryAllocate 返回封装在 ManagedObject 中的 RawPointer

如果想解除对指针的托管,可使用 UnmanageObject

调用 RawMemoryFree 释放已解除托管的指针:

RawMemoryWrite 往原始内存中写入一个值:

RawMemoryRead 读取存储在原始内存中的值:

为 10 个 "CLong" 对象分配缓存:

ForeignFunctionLoad 加载填充此缓冲区的函数:

通过传递缓冲区及其长度来调用函数:

RawMemoryImport 将原始内存导入为列表:

可能存在的问题  (2)

如果碰到不支持的类型,RawMemoryAllocate 将返回 $Failed

分配对象的数量应该是一个正整数:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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