我有两个类型&#34的变量; UnsafePointer< Float>"应该指向两个浮点数的C数组。
我已经知道如何访问他们指向的内存的值。
我不知道该怎么做,确定它们是否都引用相同的内存(即:两者都指向同一地址)。
如何检查两个UnsafePointers存储的内存地址是否相同?
答案 0 :(得分:4)
在Swift中,UnsafePointer<T>
符合Comparable
协议,所以你可以
只需将指针与==
进行比较即可。示例:C函数
float *foo(void);
映射到Swift为
func foo() -> UnsafePointer<Float>
并编译以下代码,并测试是否有两次后续调用该函数 返回相同的指针:
let p1 = foo()
let p2 = foo()
if p1 == p2 {
println("equal")
}
正如约阿希姆在评论中所说,指针值是指向的内存地址。所以指针相等意味着它们指向相同的内存地址。