如何測試兩個數組是否指向相同的內存塊? 例如,我要一個功能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