Can I Trust Pointer Arithmetic In Re-Allocated Memory?



Bear with me, as I am not a "professional" programmer, but I was
working on part of program that reads parts of four text files into
a buffer which I re-allocate the size as I read each file. I read some
of the items from the bottom up of the buffer, and some from the
top down, moving the bottom items back to the new re-allocated
bottom on every file read.

Then when I've read all four files, I sort the top and bottom items
separately using qsort(), which takes a pointer to a list of items, and
write the two sorted lists to two new files.

Problem is, I worry that if I just supply a pointer to the first item
in the bottom list to qsort(), it might point out to bozo-land during
the sort because I thought that dynamically re-allocated memory
is not necessarily contiguous. So I've done a little two step where
I write the bottom list to another buffer to do the sorting and writing,
and everything works great, but I'm wondering if I'm wasting time
and worrying about nothing...after all, if I can't trust a pointer to an
arbitrary point in the list, how can I trust a pointer to the start of
the list?

Any light you can shed on how pointers are handled in dynamically
allocated memory would be interesting and helpful...thanks.

---
William Ernest Reid



.



Relevant Pages

  • Re: Can I Trust Pointer Arithmetic In Re-Allocated Memory?
    ... a buffer which I re-allocate the size as I read each file. ... of the items from the bottom up of the buffer, ... write the two sorted lists to two new files. ... I worry that if I just supply a pointer to the first item ...
    (comp.lang.c)
  • Re: Can I Trust Pointer Arithmetic In Re-Allocated Memory?
    ... of the items from the bottom up of the buffer, ... write the two sorted lists to two new files. ... I worry that if I just supply a pointer to the first item ... The block of memory whose non-NULL address is returned from ...
    (comp.lang.c)
  • Re: grow list by tail, pointer example recipe -- please comment
    ... manufacturing a pointer with that address. ... the next cons cell. ... believe these lists are in consecutive memory locations. ...
    (comp.lang.lisp)
  • PROBLEM SOLVED ! :D
    ... INITIALIZE AND FINALIZE THE COMPLETE STRUCTURE ?! ... because it uses raw pointers for the data pointer ... ManuallyInitializeData and ManuallyFinalizeData which represent external ... // of first generation and second generation lists:D ...
    (alt.comp.lang.borland-delphi)
  • Re: [OT] Why do people detest top posting so much?
    ... messages before it at the bottom of your message. ... you must quote in order to make your reply clear, quote only the point to which ... Not to mention that the Tom Thumb example above is by far not the ... worst I have seen on this list and on a good number of other lists. ...
    (Ubuntu)