So it would be:
int *Matrix=(int *)malloc(size<<1);
Well anyways I should have used a signed byte array...but the point is it does what you want it to do.
I missed the stupid sizeof(int) or sizeof(int *Matrix) which is the same since Matrix is an integer pointer.