"CArray" (编译类型)
"CArray"::[type]
代表一个与 C 语言兼容的数组类型,包含指定类型的元素.
函数构造
- 除非用 "Managed" 包装,否则用 CreateTypeInstance 构建的 C 数组不会自动进行内存管理,必须用 DeleteObject 手动释放. »
- CreateTypeInstance["CArray"::[type],len] 构建一个长度为 len 的 C 数组.
- CreateTypeInstance["CArray"::[type],carr,len] 构建一个长度为 len 的 C 数组 carr 的副本.
- CreateTypeInstance["CArray"::[type],array] 构建一个包含给定数组元素的 C 数组. 支持的数组类型包括 "ListVector"、"NumericArray" 和 "PackedArray".
- CreateTypeInstance["Managed"::["CArray"::[type]],…] 构建一个内存管理的 C 数组.
属性
- 类型 "CArray"::[type] 的 carr 的 Information[carr,"ElementType"] 给出 type .
- FromRawPointer[carr,offset] 对 C 数组 carr 进行索引. 索引从 0 开始.
转换
- 数组类型的范围可以从 Cast 到受托管 C 数组. 支持的数组类型包括 "ListVector"、"NumericArray" 和 "PackedArray".
- Cast 可用于在 C 语言数组和原始指针之间相互转换.
数组
"RawPointer" 和 "OpaqueRawPointer"
范例
打开所有单元关闭所有单元可能存在的问题 (1)
在 "Managed" 对象之外创建的 C 数组不会自动进行内存管理,必须手动释放. 编译一个可以创建非托管 C 数组的函数:
使用 DeleteObject 手动释放 C 数组: