Use ptrdiff_t and size_t