Well, think about what you are doing.
A 3 x 2 array would be indexed as:
0,0 0,1 0,2
1,0 1,1 1,2
and as a single contiguous block memory would be:
0 1 2 3 4 5
0,0 0,1 0,2 1,0 1,1 1,2
So when you use the indexes to add to the block start address, you can't just add the indexes together:
sum += *((arr+i)+j);
because that will never access the last two elements!
Instead, you need to multiply one of the indexes by the number of elements in the row:
sum += *(arr + (i * 3) + j);
(For your array, it won't be "3" by the way - but I'm very confident you can work out what it should be!)