I'd say those malloc values are correct - the large difference between the two shows that you aren't just printing their own location. You could easily verify that by making the first allocation significantly bigger, say 100KB or 1MB - then you should see that the gap is at least as large as the allocation (most likely with a bit of a gap) - of course, if the second allocation is small, you may find that the second allocation is actually found in memory BEFORE the first one - but you should see some change.