2015-03-06 20 views
5

Bazı C arabirimleri arabelleğin sonuna işaretçiyi döndürür. Öyleyse menzili bir dilime çevirmem gerekiyor. Ancak dilim sadece işaretçi ve sayımdan oluşturulabilir. Öyleyse sayımı nasıl alacağım.İki ham işaretçi arasındaki uzaklığı hesaplayın

end - start Yazma basitçe error: binary operation `-` cannot be applied to type `*mut i8` ve std::ptr::PtrExt sadece offset ofset gelen sonunu hesaplamak için bir yöntem değil, ters çalışması vardır bana veriyor.

cevap

6

İşlenmemiş bir işaretçi usize; Daha sonra bunları çıkarma işlemini gerçekleştirebilirsiniz.

end as usize - start as usize 
+0

Hm, ' –

+0

Ben bunun için bir yöntemi ekleme yapılacak doğru şey olacağını sanmıyorum ...' std :: ptr :: PtrExt' özelliği ekleyerek, ancak uygulamaya hak ettiği ediyorum Sub * * const T, Output = isize> '' 'const T' için bu kadar kötü bir fikir olmayabilir. –