如何测试两个数组是否指向相同的内存块? 例如,我要一个功能foo
,将工作是这样的:如何测试两个数组是否共享相同的内存块?
a = rand(10) # Float64 array with 10 elements
b = copy(a) # b == a is true, but b === a is false
ar = reinterpret(Float32,a)
foo(ar,a) # I'd like this to return true
foo(reinterpret(Float64,ar),b) # I'd like this to return false, even if reinterpret(Float64,ar) == b
我测试过reinterpret(Float64,ar) === a
但它返回false
。
对于子数组,这通过0来实现,其返回true
。但是我可以为重新解释的数组激发相同的结果。
这很复杂,我们真的需要一个函数来为你做这件事。 – StefanKarpinski