1

我有两个类型为“UnsafePointer<Float>”的变量,它们应该指向两个 C 浮点数组。

我已经知道如何访问它们指向的内存的值。

我不知道该怎么做,是确定它们是否都引用相同的内存(即:都指向相同的地址)。

如何检查两个 UnsafePointer 存储的内存地址是否相同?

4

1 回答 1

4

在 Swift 中,UnsafePointer<T>符合Comparable协议,因此您可以简单地将指针与==. 示例:交流功能

float *foo(void);

映射到 Swift 为

func foo() -> UnsafePointer<Float>

并且以下代码编译,并测试对该函数的两个后续调用是否返回相同的指针:

let p1 = foo()
let p2 = foo()
if p1 == p2 {
    println("equal")
}

正如 Joachim 在评论中所说,指针值是它指向的内存地址。所以指针相等意味着它们指向相同的内存地址。

于 2014-07-12T10:29:43.403 回答