I'm beginning to smell troll here....
*(malloc1+i) will return the content of address "i"
but
malloc1[i] will return the address "i" itself
WRONG - they're the same damn thing.
And neither of them have anything to do with the address of i
malloc1 is the address
malloc1[0] is the contents of the first address
malloc1[1] is the contents of the second address
*(malloc1+1) is the same as malloc1[1] only written differently
malloc1[i] is the contents of the i'th address.