2015-03-06 17 views
5

Niektóre interfejsy C zwracają wskaźnik do końca bufora. Więc muszę zmienić zasięg na kawałek. Ale plasterek można utworzyć tylko ze wskaźnika i zliczenia. Więc jak mogę policzyć.Oblicz odległość między dwoma surowymi wskaźnikami

Pisanie end - start po prostu daje mi error: binary operation `-` cannot be applied to type `*mut i8` i std::ptr::PtrExt ma tylko offset metody obliczania koniec od offsetu, ale nie operacja odwrotna.

Odpowiedz

6

Surowy wskaźnik można odrzucić do usize; możesz wtedy wykonać odejmowanie na tych.

end as usize - start as usize 
+0

Hm, to zasługują dodając do 'std :: ptr :: PtrExt' cecha ... –

+0

Nie sądzę, że wprowadzenie metody byłoby dobrą rzeczą do zrobienia, ale wdrożenie' Sub <* const T, Output = isize> 'dla' * const T' może nie być takim złym pomysłem. –

Powiązane problemy