Notice? The comparison of two pointers you originally pointed
out is not about the location in list[]. They are values stored
there.
Ah, right you are.
Mildly relatedly, notice that a<b can be valid when a-b<0 is
not. ptrdiff_t is not required to be big enough to hold the difference!
(A highly dubious part of the C standard.)
M.