It's 16 due to pointer arithmetic. (double*)0+2 is the same as 0+2*sizeof(double).